繁体   English   中英

列的SQL SELECT SUM返回错误值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM