當我想要執行SQL查詢時出現以下錯誤:
「Msg 209,Level 16,State 1,Line 9 歧義列名'i_id'。」不明確的列名SQL
這是SQL查詢我要執行:
SELECT DISTINCT x.*
FROM items x LEFT JOIN items y
ON y.i_id = x.i_id
AND x.last_seen < y.last_seen
WHERE x.last_seen > '4-4-2017 10:54:11'
AND x.spot = 'spot773'
AND (x.technology = 'Bluetooth LE' OR x.technology = 'EPC Gen2')
AND y.id IS NULL
GROUP BY i_id
這是我的表看起來像:
CREATE TABLE [dbo].[items] (
[id] INT IDENTITY (1, 1) NOT NULL,
[i_id] VARCHAR (100) NOT NULL,
[last_seen] DATETIME2 (0) NOT NULL,
[location] VARCHAR (200) NOT NULL,
[code_hex] VARCHAR (100) NOT NULL,
[technology] VARCHAR (100) NOT NULL,
[url] VARCHAR (100) NOT NULL,
[spot] VARCHAR (200) NOT NULL,
PRIMARY KEY CLUSTERED ([id] ASC));
我試了幾件事情,但我不是一個SQL專家:)
任何幫助,將不勝感激
編輯:
你需要指定表在你的小組裏。 「GROUP BY x.i_id」 –
你錯過了通過 –
'GROUP BY PUT_X_OR_Y_HERE.i_id'組中的別名 - 這是因爲有在x和y的i_id和服務器不知道你要組哪一個通過。 –