MS Access技术问询:计算各代理商逾期15天贷款占总逾期余额的占比
MS Access计算代理商逾期15天余额占总逾期余额的百分比
方法一:单查询子查询实现(高效简洁)
直接通过子查询计算总逾期余额,一步得到每个代理商的占比:
SELECT 代理商ID, 代理商名称, 逾期余额, -- 计算占比并转成百分比,添加除以0判断避免报错 IIf( (SELECT Sum(逾期余额) FROM 逾期15天以上表) = 0, 0, (逾期余额 / (SELECT Sum(逾期余额) FROM 逾期15天以上表)) * 100 ) AS 逾期15天占比百分比 FROM 逾期15天以上表;
方法二:拆分两个查询(适合新手理解)
- 先计算总逾期15天余额
创建查询qry_TotalOverdue15,SQL语句:
SELECT Sum(逾期余额) AS 总逾期15天余额 FROM 逾期15天以上表;
- 关联查询计算单个代理商占比
创建查询qry_AgentOverduePercentage,SQL语句:
SELECT 逾期15天以上表.代理商ID, 逾期15天以上表.代理商名称, 逾期15天以上表.逾期余额, IIf(qry_TotalOverdue15.总逾期15天余额 = 0, 0, (逾期余额 / qry_TotalOverdue15.总逾期15天余额) * 100) AS 逾期15天占比百分比 FROM 逾期15天以上表, qry_TotalOverdue15;
注意事项
- 替换SQL中
逾期15天以上表、代理商ID、代理商名称、逾期余额为你实际的表名和字段名 - 如果你的「总逾期贷款余额」包含逾期13天+15天以上的所有逾期金额,将子查询改为:
(SELECT Sum(逾期余额) FROM 逾期15天以上表) + (SELECT Sum(逾期余额) FROM 逾期13天表)
对应占比计算SQL示例:
SELECT 代理商ID, 代理商名称, 逾期余额, IIf( ((SELECT Sum(逾期余额) FROM 逾期15天以上表) + (SELECT Sum(逾期余额) FROM 逾期13天表)) = 0, 0, (逾期余额 / ((SELECT Sum(逾期余额) FROM 逾期15天以上表) + (SELECT Sum(逾期余额) FROM 逾期13天表))) * 100 ) AS 逾期15天占总逾期百分比 FROM 逾期15天以上表;
内容的提问来源于stack exchange,提问作者Brian Patrick
相关产品推荐
相关产品推荐

