2013-08-23 91 views
0

我有一個表[DBO]。[RISK_DISCPLN]SQL PIVOT查詢ISSUE

RISK_DISCPLN_ID RISK_DISCPLN_NM 
    1     LegalRisk 
    2     institutional Risk 
    4     Market Risk 

Tabbe名稱[DBO]。[PROJ_RISK_DISCPLN]

PROJ_ID RISK_DISCPLN_ID 
    1  1 
    1  2 
    1  4 
    2  1 
    2  2 
    2  4 
    3  1 
    3  2 
    3  4 

表名稱[DBO]。[USER]

 USER_ID USER_FIRST_NM USER_LST_NM 
     2  saravanakumar rajkumar 
     3  Soosai   Antony 
     4  Adam    Allen 
     5  Babita   Tripathy 
     9  stacey   Davis 
     11  NULL    NULL 

我想下面的查詢顯示的名字爲相應的風險,我得到的所有名稱爲空值...幫助需要請

;with cte as 
       ( 
SELECT [PROJ_RISK_DISCPLN].PROJ_ID, 
     [USER].USER_LST_NM + ' '+ [USER].USER_FIRST_NM as Name, 
     [RISK_DISCPLN].RISK_DISCPLN_NM, 
     [RISK_DISCPLN].RISK_DISCPLN_ID, 
     [USER].[USER_ID]      
FROM dbo.[PROJ_RISK_DISCPLN]  
left join [dbo].[USER]  
on [PROJ_RISK_DISCPLN].RISK_OWN_USER_ID = [dbo].[USER].[USER_ID] 
left join dbo.[RISK_DISCPLN] on 
[PROJ_RISK_DISCPLN].RISK_DISCPLN_ID = [RISK_DISCPLN].RISK_DISCPLN_ID 
) 
select * 
from 
( 
select c1.PROJ_ID, 
c1.RISK_DISCPLN_NM, 
STUFF( 
(SELECT ', ' + c2.Name 
    FROM cte c2 
    where c1.PROJ_ID = c2.PROJ_ID 
and c1.RISK_DISCPLN_ID = c2.RISK_DISCPLN_ID 
    FOR XML PATH ('')) 
    , 1, 1, '') AS Name 
from cte c1 
) d  
pivot 
( 
    max(Name) 
    for RISK_DISCPLN_NM in ([LegalRisk Owner],[institutional Risk Owner],[Market Risk Owner]) 
) piv 

回答

0

我得到了答案,而不是[LegalRisk所有者],[機構風險負責人],[市場風險所有者] 我必須使用[LegalRisk],[機構風險],[市場風險] ...