【发布时间】:2016-04-21 18:42:57
【问题描述】:
我在 SQL 中执行此查询,但出现类似“无法对包含聚合或子查询的表达式执行聚合函数”的错误。有没有人可以帮助我。我真的被困住了。谢谢 这是我的查询。
SELECT [id]
,[name]
,SUM(case
when [code] = 1 Then
case
when exists(select * from [sampletab] where [id] = [id]and [code] = 2) then
case when exists(select * from [sampletab] where [id] = [id] and [code] = 4) then 100
else 100
end
else 100
end
when [code] = 8 then 200
when code = 2 then 100
when code = 4 then 100
end
) as "totl"
FROM [test].[dbo].[sampletab]
GROUP BY id , name
【问题讨论】:
-
[id] = [id]表明您的查询不会做任何有用的事情。从样本数据和期望的结果开始怎么样? -
您好,感谢您的回复。实际上,我想计算一些值,例如如果客户的 id = 1 并且他的代码为 1、2、4,那么它必须计算一次。我正在尝试附上我得到的示例数据的屏幕截图,但不知道如何在此处添加屏幕截图。
标签: sql sql-server sql-server-2008 sql-server-2005