I am trying to aggregate multiple rows into a single field (for multiple columns), grouped by a common ID (See below)
This is the what I have
ID CPT SVCDate Vendor
1 A3A 1/14/2023 A
2 DC6 1/23/2023 B
1 5WS 4/2/2023 A
3 DC6 5/3/2023 C
3 DC6 6/1/2023 C
I am trying to get:
ID CPT SVCDate Vendor
1 A3A,5WS 1/14/2023,4/2/2023 A,A
2 DC6 1/23/2023 B
3 DC6,DC6 5/3/2023,6/1/2023 C,C
My version of SQL doesn't support STRING_AGG()
Thanks a lot :)
SELECT ID,
CPT,
SVCDate,
Vendor,
STUFF((SELECT ', '+CPT
FROM Claims CD
WHERE CD.ID = D1.ID
FOR XML PATH ('')),1,2, ''),
STUFF((SELECT ', '+ CAST(SVCDate AS VARCHAR)
FROM Claims CD1
WHERE CD1.ID = D1.ID
FOR XML PATH ('')),1,2,''),
STUFF((SELECT ', '+Vendor
FROM Claims CD2
WHERE CD2.ID = D1.ID
FOR XML PATH ('')),1,2,'')
FROM Claims D1
GROUP BY ID,
CPT,
SVCDate,
Vendor
The above code is not working. I am expecting this result:
ID CPT SVCDate Vendor
1 A3A,5WS 1/14/2023,4/2/2023 A,A
2 DC6 1/23/2023 B
3 DC6,DC6 5/3/2023,6/1/2023 C,C