不相关的列来添加这是我的示例表和值:通过脚本
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