SQL问题。
是否可以在分组后的select中看到uniqe ID?
实施例
分组前,taskid,目标代码和用户ID
ID TaskId Purposecode UserId Time
1 1 915 421 7.0
2 1 915 421 7.0
3 1 915 421 7.0
4 4 912 421 7.0
5 4 912 421 7.0
分组后
TaskId Purposecode UserId Time
1 915 421 21.0 (uniqeID: 1,2,3)
4 912 421 14.0 (uniqeID: 4,5)
我希望看到每个组的所有ID。这可能吗?
答案 0 :(得分:1)
是的,你可以做到这一点,互联网和网站上有很多例子...下次尝试搜索更多:
DECLARE @table TABLE (ID INT, TaskId INT,Purposecode INT,UserId INT, Time Numeric(5,1))
INSERT INTO @TABLE SELECT 1, 1, 915, 421, 7.0
INSERT INTO @TABLE SELECT 2, 1, 915, 421, 7.0
INSERT INTO @TABLE SELECT 3, 1, 915, 421, 7.0
INSERT INTO @TABLE SELECT 4, 4, 912, 421, 7.0
INSERT INTO @TABLE SELECT 5, 4, 912, 421, 7.0
SELECT TaskId, Purposecode, UserId, SUM(Time) AS Time,
STUFF(
(SELECT ',' + CAST(T2.ID AS VARCHAR(10))
FROM @table T2
WHERE T.Purposecode = T2.Purposecode
AND T.TaskId = T2.TaskId
AND T.UserId = T2.UserId
FOR XML PATH('')
), 1, 1, ''
) AS UniqueIDs
FROM @table AS T
GROUP BY TaskId, Purposecode, UserId
STUFF
删除第一个逗号
FOR XML PATH
将所有行放入一个