如何在按部分分组的查询中使用子查询?
我使用 SQL Server 2008 R2 和 Delphi 2010
我收到此错误:
Cannot perform an aggregate function on an expression
containing an aggregate or a sub query.
就像这个查询:
select
t1.sen,
sum(t1.d1)as d1,
sum(t1.d2)as d2,
sum(t1.d1+t1.d2) as d_sum,
Round((sum((1000*(t1.d1+t1.d2))/(9500-(
select sum(t2.t_shab+t2.t_rooz)
from tbl1 t2
where FCode=81 AND DCode=1 AND t2.sen<=t1.sen
)))),1) as SSS
from
tbl1 t1
where
FCode = 81
AND DCode = 1
通过...分组
t1.森
没有任何保证,你可以尝试,如果不起作用请告诉我,我会删除我的答案
create function getSumBSen(@pfcode number, @pdcode number, @pSen number) returns number
as
begin
declare @r number;
select
@r =sum(t2.t_shab + t2.t_rooz)
from
tbl1 t2
where
t2.FCode = @pfcode
and t2.DCode = @pdcode
and t2.sen <= @pSen
group by t2.FCode, t2.DCode;
return (@r);
end;
select
t1.sen,
sum(t1.d1) as d1,
sum(t1.d2) as d2,
sum(t1.d1 + t1.d2) as d_sum,
Round((sum((1000*(t1.d1+t1.d2))/(9500-getSumBSen(t1.FCode, t1.dcode, t1.sen)))),1) as SSS
from
tbl1 t1
where
t1.FCode = 81
and t1.DCode = 1
group by
t1.sen;
memento:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)