SQL:如何在按部分分组的查询中使用子查询?
如何在按部分分组的查询中使用子查询?
我使用 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
group by t1.森
How can I use sub query in a query with group by section?
I use SQL Server 2008 R2 AND Delphi 2010
I receive this error:
Cannot perform an aggregate function on an expression
containing an aggregate or a sub query.
Like this 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
group by
t1.sen
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
没有任何保证,您可以尝试,如果不起作用请告诉我,我将删除我的答案
纪念品:
,它不会让我真正修复代码,因为我的编辑太短了。所以我不得不写一些更多的垃圾,这样代码修复才能被接受。
Without any warranty, you can try, if it doesn't work let me know, I'll delete my answer
memento:
added, it won't let me actually fix the code because my edit is too short. So I had to write some more miscellaneous junk so that the code fix will be accepted.
试试这个:
Try this:
您应该能够将子查询放在
FROM
子句下,遵循以下一般模式:尝试“翻译”您的查询,您可能会得到与此类似的内容:
You should be able to put your sub-query under
FROM
clause, following this general pattern:Trying to "translate" your query, you'll probably get something similar to this:
这是真正的方法
Its the true way