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

snying555 2014-08-19 10:36:58
这是我写的查询语句
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 附近出错
...全文
1002 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
snying555 2014-08-20
  • 打赏
  • 举报
回复
好了,谢谢各位
發糞塗牆 2014-08-20
  • 打赏
  • 举报
回复
两个表有相同列时要加上表明为前缀,另外group bt中不能用别名,除非有预先处理
walkeeper 2014-08-20
  • 打赏
  • 举报
回复
无法识别列的话说明这个字段两张表里都有的吧,你指定一下用的是哪张表里的字段
cch1010 2014-08-20
  • 打赏
  • 举报
回复

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"; group前加空格,不然拼接的sql是有误的。
snying555 2014-08-20
  • 打赏
  • 举报
回复
引用 13 楼 wmxcn2000 的回复:
你确定一下DT_Area这张表 ,有没有 Aname 、 ID 这两列。
这两列都有的
卖水果的net 版主 2014-08-20
  • 打赏
  • 举报
回复
你确定一下DT_Area这张表 ,有没有 Aname 、 ID 这两列。
snying555 2014-08-20
  • 打赏
  • 举报
回复
引用 9 楼 DBA_Huangzj 的回复:
什么错???
我加了空格后,by附近的错误解决了,可是又出现了新问题
snying555 2014-08-20
  • 打赏
  • 举报
回复
引用 5 楼 wmxcn2000 的回复:
[quote=引用 4 楼 wmxcn2000 的回复:]

// 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";


                sql += "where DT_Area.ID = DT_Park.AID";
                sql += " group by DT_Area.ID , DT_Area.Aname";
[/quote]这个by问题解决了
reenjie 2014-08-20
  • 打赏
  • 举报
回复
引用 8 楼 snying555 的回复:
[quote=引用 2 楼 lzw_0736 的回复:]

SUM(SUM(DT_Park.MNP)+SUM(DT_Park.ANP)) SMNP
改為:
SUM(DT_Park.MNP+DT_Park.ANP) SMNP
引用 1 楼 DBA_Huangzj 的回复:
sum+sum就可以了,没必要用sum(sum+sum),而且也不能这样写
改完后提示同样的错误啊[/quote] 查看7楼的
發糞塗牆 2014-08-20
  • 打赏
  • 举报
回复
什么错???
snying555 2014-08-20
  • 打赏
  • 举报
回复
引用 2 楼 lzw_0736 的回复:

SUM(SUM(DT_Park.MNP)+SUM(DT_Park.ANP)) SMNP
改為:
SUM(DT_Park.MNP+DT_Park.ANP) SMNP
引用 1 楼 DBA_Huangzj 的回复:
sum+sum就可以了,没必要用sum(sum+sum),而且也不能这样写
改完后提示同样的错误啊
reenjie 2014-08-20
  • 打赏
  • 举报
回复
引用 楼主 snying555 的回复:
这是我写的查询语句 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是有误的。
snying555 2014-08-20
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
sum+sum就可以了,没必要用sum(sum+sum),而且也不能这样写
我刚开始就是sum+sum,错了才改成那样,还是同样的错误
卖水果的net 版主 2014-08-20
  • 打赏
  • 举报
回复
引用 4 楼 wmxcn2000 的回复:

// 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";


                sql += "where DT_Area.ID = DT_Park.AID";
                sql += " group by DT_Area.ID , DT_Area.Aname";
卖水果的net 版主 2014-08-20
  • 打赏
  • 举报
回复

// 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";

黑暗中的光芒 2014-08-20
  • 打赏
  • 举报
回复
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
lzw_0736 2014-08-20
  • 打赏
  • 举报
回复

SUM(SUM(DT_Park.MNP)+SUM(DT_Park.ANP)) SMNP
改為:
SUM(DT_Park.MNP+DT_Park.ANP) SMNP
發糞塗牆 2014-08-20
  • 打赏
  • 举报
回复
sum+sum就可以了,没必要用sum(sum+sum),而且也不能这样写

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧