当前位置: 代码迷 >> Sql Server >> 查询中有两个sum值要相加,该怎么处理
  详细解决方案

查询中有两个sum值要相加,该怎么处理

热度:18   发布时间:2016-04-24 10:07:12.0
查询中有两个sum值要相加,该怎么办
 这是我写的查询语句   
            string sql = "select DT_Area.ID, DT_Area.Aname, SUM(SUM(DT_Park.MNP)+SUM(DT_Park.ANP)) SMNP ,
                                     SUM(DT_Park.CNP) SCNP from DT_Area , DT_Park ";
                sql += "where DT_Area.ID = DT_Park.AID";
                sql += "group by DT_Area.ID , DT_Area.Aname";
连接数据库时显示 by 附近出错
------解决方案--------------------

SUM(SUM(DT_Park.MNP)+SUM(DT_Park.ANP)) SMNP
改為:
SUM(DT_Park.MNP+DT_Park.ANP) SMNP

------解决方案--------------------
select DT_Area.ID, DT_Area.Aname, SUM(DT_Park.MNP+DT_Park.ANP) as SMNP,
SUM(DT_Park.CNP) SCNP from DT_Area , DT_Park 
 where DT_Area.ID = DT_Park.AID 
 group by DT_Area.ID , DT_Area.Aname

------解决方案--------------------

// LZ 的语句没有问题,只是你少写了一个空格
// 在 group by 前加一个空格,你这样拼接出来语句,变成 AIDgroup by ,应该是AID group by 

                sql += "where DT_Area.ID = DT_Park.AID";
                sql += "group by DT_Area.ID , DT_Area.Aname";


------解决方案--------------------
引用:
 这是我写的查询语句   
            string sql = "select DT_Area.ID, DT_Area.Aname, SUM(SUM(DT_Park.MNP)+SUM(DT_Park.ANP)) SMNP ,
                                     SUM(DT_Park.CNP) SCNP from DT_Area , DT_Park ";
                sql += "where DT_Area.ID = DT_Park.AID";
                sql += "group by DT_Area.ID , DT_Area.Aname";
连接数据库时显示 by 附近出错

1,将SUM(SUM(DT_Park.MNP)+SUM(DT_Park.ANP)) SMNP  改为SUM(DT_Park.MNP)+SUM(DT_Park.ANP)as SMNP 
2,最重要的是将sql += "group by DT_Area.ID , DT_Area.Aname";改为sql += "  group by DT_Area.ID , DT_Area.Aname"; 不然拼接的sql是有误的。
                               
------解决方案--------------------
引用:
Quote: 引用:


SUM(SUM(DT_Park.MNP)+SUM(DT_Park.ANP)) SMNP
改為:
SUM(DT_Park.MNP+DT_Park.ANP) SMNP


引用:
sum+sum就可以了,没必要用sum(sum+sum),而且也不能这样写
改完后提示同样的错误啊

查看7楼的
------解决方案--------------------
两个表有相同列时要加上表明为前缀,另外group bt中不能用别名,除非有预先处理
  相关解决方案