当我想要执行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和服务器不知道你要组哪一个通过。 –