我遇到错误
选择列表中的“ Nordlux UK $ Item.Description”列无效 因为它既不包含在聚合函数中,也不包含在 GROUP BY子句。
在尝试运行SQL语句时。
如果我删除了SUM函数,并且按它进行分组,但是我希望将所有结果按我的项目号分组。 谁能在我的代码中看到我做错了什么?
SELECT
[Nordlux UK$Item].No_,
[Nordlux UK$Item].[Description],
SUM([Nordlux UK$Item Ledger Entry].[Quantity]) AS Int
FROM [Nordlux UK$Item]
JOIN [Nordlux UK$Sales Price]
ON [Nordlux UK$Item].[No_] = [Nordlux UK$Sales Price].[Item No_]
JOIN [Nordlux UK$Item Ledger Entry]
ON [Nordlux UK$Item].[No_] = [Nordlux UK$Item Ledger Entry].[Item No_]
WHERE [Nordlux UK$Sales Price].[Sales Code] = 'DUN02'
GROUP BY [Nordlux UK$Item].No_
答案 0 :(得分:3)
您需要在group by子句中添加[Nordlux UK $ Item]。[Description]-因为选择列表的每一列(聚合功能除外)都应该按照by子句
SELECT
[Nordlux UK$Item].No_,
[Nordlux UK$Item].[Description],
SUM([Nordlux UK$Item Ledger Entry].[Quantity]) AS Int
FROM [Nordlux UK$Item]
JOIN [Nordlux UK$Sales Price]
ON [Nordlux UK$Item].[No_] = [Nordlux UK$Sales Price].[Item No_]
JOIN [Nordlux UK$Item Ledger Entry]
ON [Nordlux UK$Item].[No_] = [Nordlux UK$Item Ledger Entry].[Item No_]
WHERE [Nordlux UK$Sales Price].[Sales Code] = 'DUN02'
GROUP BY [Nordlux UK$Item].No_, [Nordlux UK$Item].[Description]
答案 1 :(得分:2)
在select语句中与其他列一起使用聚合函数时,通常使用group by并在group by中添加select语句中除聚合函数以外的所有字段。
在您的情况下,您应使用: GROUP BY [Nordlux UK $ Item]。否, [Nordlux UK $ Item]。[描述],
如果在select语句中仅使用聚合函数,则无需添加group by子句。
答案 2 :(得分:2)
在使用聚合函数时,我总是按所有聚合列(即未使用诸如SUM,MAX,MIN,COUNT的聚合函数的列)进行分组。
SQL并不是一门年轻的语言,也许有一个原因使您想跳过一些汇总列,但我从未遇到过这种情况。