我试图使用特定的综合规则(第5和第6列)计算一定数值和相同金额之间的差异:
select
A,
B,
C,
sum(D),
sum(D)/300,
case when sum(D)/300 < 1.5 then 0 else round(sum(D/300), 0) end
from table
group by grouping sets ((A,B,C), ())
SQL有效,但最后一行是错误的。对于第4列和第5列,最后一行中的总计似乎是正确的,但在第6列中并未将列的向上舍入值相加,而是列5的总计的向上舍入值...
我做错了什么? (目标:比较第5栏和第6栏的总数)
欢迎任何帮助!
编辑:
现在的结果是这样的(只有第5和第6列):
1,2 0
1,5 2
3,1 3
5,8 6
在这个例子中,第二列的总和应该是5,但它表示6,使用未包含的值......
答案 0 :(得分:0)
您缺少外部SUM
:
select
A,
B,
C,
sum(D),
sum(D)/300,
SUM(case when sum(D)/300 < 1.5 then 0 else round(sum(D/300), 0) end) as result
from table
group by grouping sets ((A,B,C), ())