Problème dans la requête dans SQL Server 2008

J'ai une table appelée album avec les colonnes suivantes:

 Album_Id, User_Id, Report_Id, PhotoName 

Il y a différents Photoname sur une combinaison User_Id et Report_Id

Comme:

 Album_Id User_Id Report_Id PhotoName 1 1 16 A.jpg 2 1 16 B.jpg 3 2 17 C.jpg 4 2 17 D.jpg 

Je veux juste récupérer datatables au format

 User_Id Report_Id PhotoName1 PhotoName2 1 16 A.jpg B.jpg 2 17 C.jpg D.jpg 

Max Photos sont 4 …

 WITH cte AS ( SELECT * , ROW_NUMBER() OVER ( PARTITION BY User_Id, Report_Id ORDER BY Album_Id ) AS RN FROM T ) SELECT User_Id , Report_Id , MAX(CASE WHEN RN = 1 THEN PhotoName END) AS PhotoName1 , MAX(CASE WHEN RN = 2 THEN PhotoName END) AS PhotoName2 , MAX(CASE WHEN RN = 3 THEN PhotoName END) AS PhotoName3 , MAX(CASE WHEN RN = 4 THEN PhotoName END) AS PhotoName4 FROM cte GROUP BY User_Id , Report_Id 
 SELECT a.User_Id, a.Report_Id, a.PhotoName as 'PhotoName1', a2.PhotoName as 'PhotoName2', a3.PhotoName as 'PhotoName3', a4.PhotoName as 'PhotoName4' FROM album a LEFT JOIN album a2 on a2.User_Id = a.User_Id and a2.Report_Id = a.Report_Id AND a2.Album_Id != a.Album_Id LEFT JOIN album a3 on a3.User_Id = a.User_Id and a3.Report_Id = a.Report_Id AND a3.Album_id NOT IN (a.Album_Id, a2.Album_Id) LEFT JOIN album a4 on a4.User_Id = a.User_Id and a4.Report_Id = a.Report_Id AND a4.Album_id NOT IN (a.Album_Id, a2.Album_Id, a3.Album_Id) ORDER BY a.User_Id, a.Report_Id ASC;