首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

不能对包含聚合或子查询的表达式执行聚合函数。解决办法

2012-03-14 
不能对包含聚合或子查询的表达式执行聚合函数。select sum(case when QtyPrgPlanPKID_FKID_QtyIDin(select

不能对包含聚合或子查询的表达式执行聚合函数。
select sum(case when QtyPrgPlanPKID_FKID_QtyID in(select ListBudgetPKID from tbListBudget where ListBudgetName='801') then QtyPrgPlanPlanQty else 0 end) '801线路累计' from tbQtyPrgPlan


--不能对包含聚合或子查询的表达式执行聚合函数。

[解决办法]
用left join去累计吧!

select sum(case when b.ListBudgetPKID is not null then a.QtyPrgPlanPlanQty 
else 0 end) '801线路累计' 
from tbQtyPrgPlan a left join tbListBudget b 
on a.QtyPrgPlanPKID_FKID_QtyID = b.ListBudgetPKID and b.ListBudgetName='801'
[解决办法]

SQL code
--分别统计select m.QtyPrgPlanPKID_FKID_QtyID , sum(QtyPrgPlanPlanQty) '801线路累计'from tbQtyPrgPlan m , tbListBudget nwhere m.QtyPrgPlanPKID_FKID_QtyID = n.ListBudgetPKID and n.ListBudgetName='801'group by m.QtyPrgPlanPKID_FKID_QtyID--总体统计select sum(QtyPrgPlanPlanQty) '801线路累计'from tbQtyPrgPlan m , tbListBudget nwhere m.QtyPrgPlanPKID_FKID_QtyID = n.ListBudgetPKID and n.ListBudgetName='801' 

热点排行