原因:当前公式把 CASE WHEN [客户类别]='民企' 放在窗口聚合外层,导致非“民企”分组的 [基准指数] 为 0,后续除以 AVG([基准指数]) 时出现除零并返回空值。
建议:如果所有[客户类别]要使用同一个 [基准指数] ,需要将条件移入聚合函数, [基准指数] 建议改为:
- SUM(CASE WHEN [客户类别] = '民企' THEN [发货金额含税] ELSE 0 END) OVER (PARTITION BY 1)
- /
- SUM(CASE WHEN [客户类别] = '民企' THEN [发货数量] ELSE 0 END) OVER (PARTITION BY 1)
复制代码
如果[基准指数] 有可能为0,则[价格指数] 建议改为:
- CASE
- WHEN AVG([基准指数]) IS NULL OR AVG([基准指数]) = 0 THEN NULL
- ELSE (SUM([发货金额含税]) / SUM([发货数量])) / AVG([基准指数])
- END
复制代码
|