sql server 中sum函数里面不能再嵌套sum和子查询怎么解决啊,求大神指点啊,在线等,急急急

左琴右剑少年时 2016-02-29 12:37:07
SELECT SUM(A.SUM_TO_DATE) AS SUM_TO_DATE,
SUM(A.TOTAL_ACTU_SUM) AS CON_COM,
SUM(ISNULL((SELECT SUM(B.Rqpt_Sum)
FROM HT_RQPT B
INNER JOIN HT_RQMT C
ON B.RQMT_ID = C.RQMT_ID
WHERE C.CNMT_ID = A.CNMT_ID),
0)) AS SUM_RQPT
FROM V_HT_CNMT A
WHERE A.PROJ_ID = '6EB732CA99D046D6BB1DA70EF80EBAEA'
AND A.CONTRACT_TYPE = 'CON'
AND A.EXESTATUS = 'EFFICIENT'





消息 130,级别 15,状态 1,第 7 行
不能对包含聚合或子查询的表达式执行聚合函数。
...全文
1301 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcmakebest 2016-02-29
  • 打赏
  • 举报
回复
SUM不能嵌套,但SELECT可以嵌套啊. select sum(...) from ( select sum(...), ..... ) as tt
道素 2016-02-29
  • 打赏
  • 举报
回复 2
逻辑上相同A.PROJ_ID,A.CONTRACT_TYPE,A.EXESTATUS中可能包含多个CNMT_ID 改成下面的试试

	SELECT SUM(A.SUM_TO_DATE) AS SUM_TO_DATE,
       SUM(A.TOTAL_ACTU_SUM) AS CON_COM,
       SUM(ISNULL(D.Rqpt_Sum, 0)) AS SUM_RQPT
  FROM V_HT_CNMT A
  LEFT JOIN (
   	  SELECT C.CNMT_ID,SUM(B.Rqpt_Sum) AS Rqpt_Sum FROM HT_RQPT B INNER JOIN HT_RQMT C  ON B.RQMT_ID = C.RQMT_ID  GROUP BY  C.CNMT_ID--  WHERE C.CNMT_ID = A.CNMT_ID
  ) D ON D.CNMT_ID=A.CNMT_ID
 WHERE A.PROJ_ID = '6EB732CA99D046D6BB1DA70EF80EBAEA'
   AND A.CONTRACT_TYPE = 'CON'
   AND A.EXESTATUS = 'EFFICIENT'
	GROUP BY A.PROJ_ID,A.CONTRACT_TYPE,A.EXESTATUS
中国风 2016-02-29
  • 打赏
  • 举报
回复 2
SELECT  SUM(A.SUM_TO_DATE) AS SUM_TO_DATE
       ,SUM(A.TOTAL_ACTU_SUM) AS CON_COM
       ,ISNULL(SUM(B.Rqpt_Sum) , 0) AS SUM_RQPT
FROM    V_HT_CNMT A
	LEFT JOIN (		SELECT C.CNMT_ID ,SUM(B.Rqpt_Sum) AS Rqpt_Sum
                     FROM   HT_RQPT B
                            INNER JOIN HT_RQMT C ON B.RQMT_ID = C.RQMT_ID
                     GROUP BY   C.CNMT_ID) AS B ON B.CNMT_ID = A.CNMT_ID
WHERE   A.PROJ_ID = '6EB732CA99D046D6BB1DA70EF80EBAEA'
        AND A.CONTRACT_TYPE = 'CON'
        AND A.EXESTATUS = 'EFFICIENT';
本课程根据讲师十多年在世界500强外企的生产环境SQL Serer数据库管理和项目实施经验倾心打造。课程系统性强,知识体系完整,覆盖90%以上的企业环境下SQL Server高可用场景,课程不仅演示详细的操作步骤,更加突出最常见的故障和问题,让学员少走“弯路”,不只是让学员学会“操作”更能让学员“操作”的规范,满满的干货分享,一些课程资料(架构图、部署规划表格等)不仅可以帮助学员掌握技能,也可以作为学员在企业生产环境实施SQL Server高可用的配置文档、操作手册等。课程的实验环境介绍:1)全部基于微软域环境和企业版SQL Server AOAG - 95%以上的企业环境都是在域环境,不介绍非域环境和标准版的SQL Server高可用性组,这的配置在企业较罕见,没有实践意义,不浪费学员时间。2)相应域环境已提前部署和配置好 - 学员导入虚拟机即可开始实验,无需从零开始搭建域环境,所有实验SQL Server均已加域,直入主题,节省大量时间。3)最新的Windows Server故障转移集群(WS2016、WS2019)和最新版本的SQL ServerSQL2017、SQL2019) -  WS2016-SQL2017与WS2019-SQL2019是目前大多数企业SQL Server高可用的主要平台,基于微软产品生命周期现在一些企业也在讲早期的AOAG向这两个版本迁移,掌握这两种组合不仅让学员学会,更能学有所用。本课程为后续SQL Server进阶课程铺垫,是通向SQL Server DBA 专家的必经之路,讲师每周答疑两次。所有课程资料包括:课程PPT、架构图、部署规划表格、各类脚本学员均可下载。     

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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