日期:2014-05-16  浏览次数:20473 次

再问一个关于sum的问题
select a.id,a.kcsl,a.tm,b.mc,sum(b.cbj*a.kcsl) as zs from ckb as a inner join tmb as b on a.tm=b.tm where a.kcsl>0 group by a.id,a.kcsl,a.tm,b.mc
以上代码执行出的sum不会出总和,只是某一项的乘值,不知为什么?请大大明示,谢谢!
------解决方案--------------------
试试这个
SELECT  a.id ,
        a.kcsl ,
        a.tm ,
        b.mc ,
        ( SELECT    SUM(b.cbj * a.kcsl)
          FROM      ckb AS a
                    INNER JOIN tmb AS b ON a.tm = b.tm
          WHERE     a.kcsl > 0
        ) AS zs
FROM    ckb AS a
        INNER JOIN tmb AS b ON a.tm = b.tm
WHERE   a.kcsl > 0
--GROUP BY a.id ,
--        a.kcsl ,
--        a.tm ,
--        b.mc