2014-09-23 23 views
0

SQL問題。SQL。分組後可以看到每個人的ID嗎?

是否有可能看到uniqe ID後選擇一組?

例子。

組通過,任務id,purposecode和用戶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對每個單獨的羣體。這可能嗎?

回答

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把所有行合成爲一個

+0

非常感謝你@達卡! :) – Zaz 2014-09-23 07:24:33

相關問題