不相關的列來添加這是我的示例表和值:通過腳本
CREATE TABLE [dbo].[Test]
(
[Id] BIGINT NOT NULL DEFAULT(0),
[VId] BIGINT NOT NULL DEFAULT(0),
[Level] INT NOT NULL DEFAULT(0)
);
INSERT INTO [dbo].[Test] ([Id], [VId], [Level]) VALUES (100, 1, 1);
INSERT INTO [dbo].[Test] ([Id], [VId], [Level]) VALUES (101, 1, 2);
INSERT INTO [dbo].[Test] ([Id], [VId], [Level]) VALUES (102, 1, 3);
INSERT INTO [dbo].[Test] ([Id], [VId], [Level]) VALUES (103, 2, 1);
INSERT INTO [dbo].[Test] ([Id], [VId], [Level]) VALUES (104, 3, 1);
INSERT INTO [dbo].[Test] ([Id], [VId], [Level]) VALUES (105, 3, 2);
INSERT INTO [dbo].[Test] ([Id], [VId], [Level]) VALUES (106, 4, 1);
INSERT INTO [dbo].[Test] ([Id], [VId], [Level]) VALUES (107, 4, 2);
INSERT INTO [dbo].[Test] ([Id], [VId], [Level]) VALUES (108, 4, 3);
INSERT INTO [dbo].[Test] ([Id], [VId], [Level]) VALUES (109, 4, 4);
因此,在現在我使用這個腳本:
SELECT
[T].[VId], MAX ([T].[Level]) AS [MaxLevel]
FROM
[dbo].[Test] AS [T]
GROUP BY
[T].[VId];
,並返回:
VId MaxLevel
1 3
2 1
3 2
4 4
但我需要Id
列,我不能將它添加到腳本組,我需要以下值:
VId MaxLevel Id
1 3 102
2 1 103
3 2 105
4 4 109
您的建議是什麼?
而且下面的值是足夠任何識別符的標識與最大(級):
Id
102
103
105
109
你的腳本返回所有10行,像'SELECT * FROM [測試]' – Saeid 2012-02-23 07:11:45
它缺乏'和[T1]。[等級] = [T] [MaxLevel]'在加入條件的一部分。 – 2012-02-23 07:20:01
嘗試更新一個,我已經添加了確保maxlevel被選中的條件 – kingpin 2012-02-23 07:27:37