I have this table, I need to concatenate the same values from serveral columns in one row.
RowId ServerName MyApplicationName UserName StartTime LastTime UsersCount 1 Prod MyProd User1 2021/03/09 2021/03/09 10 2 DEV1 MyApp1 User1 2021/03/12 2021/03/13 3 3 DEV1 MyApp1 User1 2021/03/14 2021/03/15 3 4 DEV1 MyApp1 User1 2021/03/16 2021/03/17 4 5 DEV1 MyApp1 User1 2021/03/18 2021/03/19 5 I need following result:
RowId ServerName MyApplicationName UserName StartTime LastTime UsersCount 1 Prod MyProd User1 2021/03/09 2021/03/09 10 2 DEV1 MyApp1 User1 2021/03/12 2021/03/19 15 What I tried:
SELECT RowId, STUFF( (SELECT ',' + ServerName FROM tbl t1 WHERE t2.ServerName = t1.ServerName FOR XML PATH('')) , 1, 1, '') ) As ServerName, STUFF( (SELECT ',' + MyApplicationName FROM tbl t1 WHERE t2.MyApplicationName = t1.MyApplicationName FOR XML PATH('')) , 1, 1, '') ) As MyApplicationName, STUFF( (SELECT ',' + UserName FROM tbl t1 WHERE t2.UserName = t1.UserName FOR XML PATH('')) , 1, 1, '') ) As UserName, MIN(StartTime) AS StartTime, MAX(LastTime) AS LastTime, SUM(UserCount) AS UserCount GROUP BY ApplicationName But it doesn't works. How do it correctly and what I did wrong?
