Hi @Ahmed Salah Abed Elaziz If you are able to use STRING_AGG, then check this query:
;WITH CTE1 AS
(
SELECT ApplicationId,STRING_AGG(Server_Name,',') AS Server_Name
FROM #t1 t INNER JOIN [dbo].[ServerNames] s ON s.ServerID = t.ServerID
GROUP BY ApplicationId
),CTE2 AS
(
SELECT ApplicationId,STRING_AGG([DB_Name],',') AS [DB_Name]
FROM #t1 t INNER JOIN [dbo].[DataBase] db ON db.ServerID = t.ServerID
GROUP BY ApplicationId
)
SELECT C1.ApplicationId,C1.Server_Name,C2.DB_Name
FROM CTE1 C1 JOIN CTE2 C2 ON C1.ApplicationId=C2.ApplicationId
Best regards,
Cosmog Hong