DECLARE @Test TABLE (id INT,smo NVARCHAR(100),grad NVARCHAR(100),lst int)
INSERT INTO @Test
SELECT 11,'Ali','G',1
UNION ALL
SELECT 11,'Ali','C',1
UNION ALL
SELECT 11,'Ali','F',0
UNION ALL
SELECT 12,'Veli','C',1
UNION ALL
SELECT 12,'Veli','G',1
SELECT t.id, t.smo, t.grad,c.* FROM @Test t
CROSS APPLY(
SELECT MIN(lst) glst FROM @Test t1
WHERE t1.id=t.id
GROUP BY id, smo
) c
@Test 表实际上是我另一个查询的结果。
我想要的是,从“lst”列中为每个“smo”值接收最小值。
使用交叉应用,当它是一张桌子时,我可以实现我想要的。
当我处于这样的情况时,我该如何解决它。
SELECT * FROM (
SELECT * FROM @Test
) t
输入
预期输出
预先感谢您的帮助...