【发布时间】:2019-09-30 10:11:37
【问题描述】:
我收到此错误:
Column 'MDR.dbo.nav_BG$Location.Name' is invalid in the select list because
it is not contained in either an aggregate function or the GROUP BY clause.
他希望我将我的所有字段添加到 group by 但这是不正确的。
DECLARE @date datetime2 = CURRENT_TIMESTAMP;
SELECT
[Source Document ID] AS Source
,Location.Name AS Address
,[Item No_] AS No
,[Document No_] AS Document
,Item.[No_ 2] AS No2
,MN.Name AS Brand
,SUM([Quantity Requested]) AS Qty,
CASE WHEN qty > 20 THEN 'No' ELSE 'Yes' END AS Priority
,[Created On] AS Date
FROM [MDR].[dbo].[nav_BG$AWHM_Document_Line] AS DocLine
JOIN [MDR].[dbo].[nav_BG$Item] AS Item ON DocLine.[Item No_] = Item.[No_]
JOIN [MDR].[dbo].[nav_BG$Location] AS Location ON DocLine.[Source Document ID] = Location.Code
JOIN [MDR].[dbo].[nav_BG$Manufacturer] AS MN ON Item.[Manufacturer Code] = MN.Code
WHERE [Location Code] = 'XXX'
AND [Document Type] = 'XXX'
AND [From Zone Code] = 'XXX'
AND (DATEPART(yy, [Created On]) = YEAR(@date)
AND DATEPART(mm, [Created On]) = MONTH(@date)
AND DATEPART(dd, [Created On]) = DAY(@date))
GROUP BY [Source Document ID]
ORDER BY [Created On]
预期的结果是SUM([Quantity Requested]) group by [Source Document ID]。
[Source Document ID]如何只使用一组?
【问题讨论】: