具有分组依据的ODBC SQL IIF - 聚合函数错误

时间:2016-05-27 01:54:22

标签: sql group-by iif

这是我想要运行的ODBC SQL语句。 ODBC是连接类型,查询是针对Excel电子表格的命名范围运行的。我可以使用最好的SQL语言,所有先前的查询都按预期工作。

select
IIF([Account Name]='Account1','Special Account','Not Special') as AccountType,
IIF([Recipe]='Recipe1','American','Other') as FoodType,
sum([Unpaid])
from MyData
Group by [Account Name]

以下是我收到的错误消息。

“您尝试执行的查询不包含指定表达式作为聚合函数的一部分。”

我知道这意味着我必须将[Recipe]添加到Group中,因此Group by将会是这样的。

Group by [Account Name],[Recipe]

如果我进行此更改,则SQL语句会运行,但我不能通过这两个字段获得输出Group。这将返回我不能使用但不能使用的结果。我真的只想按[帐户名]分组。

我该怎么做?此查询中需要IIF语句以返回所需的结果。

1 个答案:

答案 0 :(得分:0)

如果它不在聚合函数中,则需要在一个组中。 SUM()是您拥有的唯一聚合函数 - 其他函数按组进行。

select
IIF([Account Name]='Account1','Special Account','Not Special') as AccountType,
IIF([Recipe]='Recipe1','American','Other') as FoodType,
sum([Unpaid])
from MyData
Group by IIF([Account Name]='Account1','Special Account','Not Special'),
IIF([Recipe]='Recipe1','American','Other')