2017-10-28 150 views
0

這是我的源表(pivot_dummy):SQL支點 - 如何獲得列之間的所有可能的組合擺動

Source data Table

,我需要通過Parameter_type轉動,但需要Parameter_val的之間的所有可能的組合。把它做這樣

Desired Output

什麼我用這個代碼:

SELECT nct_id, [Asset],[Indication], rowid 
FROM (SELECT nct_id,Parameter_val,parameter_type, rowid 
     FROM (Select *, 
        Row_Number() Over (Partition By nct_id,Parameter_type ORDER BY nct_id) RowId 
      from [dbo].[pivot_dummy] 
      ) a 
    ) s 
Pivot (
    max(parameter_val) 
     for Parameter_type in ([Asset], [Indication]) 
    ) as pivottable 

但是這個代碼的結果如下:

Current Output

是否有人可以幫忙嗎?

回答

0

從我可以告訴,你根本不想要pivot。簡單的一個join

select pd1.nct_id, pd1.parameter_value as asset, pd2.parameter_value as indication 
from pivot_dummy pd1 join 
    pivot_dummy pd2 
    on pd1.nct_id = pd2.nct_id and 
     pd1.parameter_type = 'Asset' and 
     pd2.parameter_type = 'Indication'; 
+0

嗨戈登,這工作很好!非常感謝! –

+0

嗨戈登,當只有兩列(資產和指示)時,這解決了我的問題。但實際上,我有7列需要進行調整,並且還可以根據NCTID找到所有可能的組合,可能的解決方案是什麼?我還應該考慮擺動嗎? –

+0

@AnkurBansal。 。 。只能回答你所問的問題。如果您有其他問題,請將其作爲*新問題。 –

相關問題