[英]SQL SELECT SUM of columns is returning incorrect values
我正在使用SQL选择,下面是查询的一部分
SELECT coalesce(C2.PRE,0) as PRE,coalesce(C4.PREX,0) as PREX,
coalesce(C2.AFTER,0) as AFTER, coalesce(C4.AFTERX,0) as AFTERX
它返回4列
1 0 0 0
我尝试将3列添加到SQL SELECT中,而这3列是根据上述列查找一些SUM值
PRESUM =(PRE+PREX) = 1+0=1
AFTERSUM =(AFTER+AFTERX) =0+0=0
TOTAL =PRESUM+AFTERSUM)= 1+0=1
The new SQL is
SELECT coalesce(C2.PRE,0) as PRE, coalesce(C4.PREX,0) as PREX,
coalesce(C2.AFTER,0) as AFTER, coalesce(C4.AFTERX,0) as AFTERX,
coalesce((PRE+PREX),0) as PRESUM
coalesce((AFTER+AFTERX),0) as AFTERSUM
coalesce((PRESUM+AFTERSUM),0) as TOTAL
结果返回是
1 0 0 0 0 0 0 ,
但是最后3列[PRESUM,AFTERSUM,TOTAL]应该返回1 00。我计算总和的方式出了问题
进行算术运算时, NULL
导致NULL
值。 因此,您可能想要这样:
SELECT coalesce(C2.PRE,0) as PRE,coalesce(C4.PREX,0) as PREX,
coalesce(C2.AFTER,0) as AFTER, coalesce(C4.AFTERX,0) as AFTERX,
( coalesce(PRE, 0) + coalesce(PREX, 0) ) as PRESUM,
( coalesce(AFTER, 0) + coalesce(AFTERX, 0) ) as AFTERSUM,
( coalesce(PRESUM, 0) + coalesce(AFTERSUM, 0) ) as TOTAL
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.