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 回答