Hãy thử điều này:
SELECT Name,
CAST(count AS VARCHAR(10)) + ',' + CAST(ProjectID AS VARCHAR(10))
AS Label FROM table1
Kết quả
NAME LABEL ---------------------------- Security Services 32,1 Technical Services 32,7 Technical Services 31,2
Xem SQLFiddle này
Nếu bạn muốn nhóm theo Name
(Một cái gì đó như Group_Concate
trong MySQL) không có bất kỳ phương pháp nào cho nó trong SQL Server. Đó chỉ là một logic đằng sau nó.
Vì vậy, hãy thử điều này:
SELECT * FROM (
SELECT DISTINCT Name
FROM table1
) table2
CROSS APPLY
(SELECT CASE ROW_NUMBER()
OVER(ORDER BY ProjectId)
WHEN 1 THEN '' ELSE ': ' END +
(CAST(table3.count AS VARCHAR(10)) + ','
+ CAST(table3.ProjectID AS VARCHAR(10)) )
FROM table1 table3
WHERE table3.Name = table2.Name
ORDER BY ProjectID
FOR XML PATH ('')
) table3(Label)
Vì vậy, kết quả sẽ là
NAME LABEL -------------------------------- Security Services 32,1 Technical Services 31,2: 32,7