2

次のクエリを実行すると、以下の結果が得られます。この結果を行に変換したいのですが、列に変換したい行の上にあるものは何でも。

project_level と account_level が行になり、残りの行が列に移動するようにします。

SELECT S.Description,T.Project_Level,S.Account_Level FROM
(           
   SELECT DISTINCT SM.Description, COUNT(VA.FK_Status_ID) AS Project_Level,SM.Seq
                  From DeliveryPlatform_APPS.VA.DP_VA_Item_Status_Master SM
                  LEFT OUTER JOIN DeliveryPlatform_APPS.VA.DP_VA_Items VA ON SM.Status_ID = VA.FK_Status_ID 
                  AND VA.FK_DP_Entity_Type_ID = 1 AND FK_DP_Entities=671
                  GROUP BY SM.Description,SM.Seq,FK_Status_ID           
) AS T            
INNER JOIN        
(           
  SELECT DISTINCT SM.Description, COUNT(VA.FK_Status_ID) AS Account_Level,SM.Seq
                  From DeliveryPlatform_APPS.VA.DP_VA_Item_Status_Master SM
                  LEFT OUTER JOIN DeliveryPlatform_APPS.VA.DP_VA_Items VA ON SM.Status_ID = VA.FK_Status_ID 
                  AND VA.FK_DP_Entity_Type_ID = 1 AND FK_DP_Entities=671
                  GROUP BY SM.Description,SM.Seq,FK_Status_ID           
) AS S 
ON S.Description=T.Description 
--ORDER BY Seq 

 Description      Project_Level      Account_Level

 Accepted          0                 0
 Closed            0                 0
 Delivered         0                 0
 Dropped           0                 0
 Open              0                 0
 Parked            0                 0
 Shortlisted       0                 0
 Work In Progress  0                 0
4

1 に答える 1

1

目的を達成するには、SQL Server PIVOT および UNPIVOT 手法を確認する必要があります。

http://msdn.microsoft.com/en-us/library/ms177410(v=sql.105).aspx

于 2013-07-07T11:47:15.180 に答える