如何用SUM CASE WHEN语句计算GrandTotal减去Product 3的结果?
修正后的SQL语句实现需求
原SQL的CASE表达式语法存在错误,正确写法是在每个WHEN分支返回对应计算值,再通过SUM汇总得到目标结果:
SUM( CASE WHEN Type = 'GrandTotal' THEN Rev WHEN Type = 'Product 3' THEN -Rev ELSE 0 END ) as GT_ExcPrdct3
逻辑说明:
- 当Type为
GrandTotal时,将其Rev值计入总和(即+390) - 当Type为
Product 3时,将其Rev值以负数形式计入总和(即-200) - 其他类型记录贡献0,不影响最终结果
- 最终SUM计算结果为390 - 200 = 190,完全匹配需求
内容的提问来源于stack exchange,提问作者Phil Tucker
相关产品推荐
相关产品推荐

