Sql server 2012 具有Group By的列名称不明确
对于下面的查询,我有Sql server 2012 具有Group By的列名称不明确,sql-server-2012,group-by,ambiguous,Sql Server 2012,Group By,Ambiguous,对于下面的查询,我有不明确的列名“Item”错误。但是,我已经输入了所需的格式,因为参数位于列的开头 SELECT [Country Code], Item, [FE SSO], [Newest Job Number], [Newest Transaction Date], Z.ConsignDate AS [ConsignDate],
不明确的列名“Item”
错误。但是,我已经输入了所需的格式,因为参数位于列的开头
SELECT
[Country Code],
Item,
[FE SSO],
[Newest Job Number],
[Newest Transaction Date],
Z.ConsignDate AS [ConsignDate],
FROM DailyOnhand
LEFT JOIN
(SELECT
[Job Number],
[Item],
Min([Transaction Day]) AS ConsignDate
FROM vwAllTxns
GROUP BY [Job Number], [Item]) Z
ON vwDailyOnhand_v2.[Newest Job Number] = Z.[Job Number]
AND vwDailyOnhand_v2.[Item] = Z.[Item]
感谢您的帮助。
谢谢大家! 您需要在
选择中的项目
前面加上该项目来源表的名称/别名
SELECT
d.[Country Code],
d.Item,
d.[FE SSO],
d.[Newest Job Number],
d.[Newest Transaction Date],
Z.ConsignDate AS [ConsignDate],
FROM DailyOnHand d
LEFT JOIN
(SELECT
v.[Job Number],
v.[Item],
Min(v.[Transaction Day]) AS ConsignDate
FROM vwAllTxns v
GROUP BY v.[Job Number], v.[Item]
) Z
ON d.[Newest Job Number] = Z.[Job Number]
AND d.[Item] = Z.[Item]
您的from
指定了dailonhand
,但您的on
指定了vwdailonhand\u v2
,我删除了后者并使用了一个别名。两个表中可能都有一个item列,因此需要事先指定它。此外,子查询也不需要,您可以在分区上使用MIN()。。用一个简单的连接
SELECT
[Country Code],
Z.[Item], -- Need to specify which item is source
[FE SSO],
[Newest Job Number],
[Newest Transaction Date],
Z.ConsignDate AS [ConsignDate],
FROM DailyOnhand
LEFT JOIN
(SELECT
[Job Number],
[Item],
Min([Transaction Day]) AS ConsignDate
FROM vwAllTxns
GROUP BY [Job Number], [Item]) Z
ON vwDailyOnhand_v2.[Newest Job Number] = Z.[Job Number]
AND vwDailyOnhand_v2.[Item] = Z.[Item]