2016-12-06 65 views
1

我有一個獨特的交叉應用。我有一張看起來像這樣的桌子。具有交叉加入的SQL Server Unpivot

ID enter image description here

我想看到什麼看到的是,如果這可以分成2行4列。 我想將SUB和APP一起拆分。

ClaimID === SUB Cost === APP Cost === Cost Type 
109508 === 51.86 === 0.00  === "Parts" 
109508 === 318.08 === 0.00  === "Labor" 

這允許表中每個類別的SUB對APP成本都有一個簡單的一行。我真的很感謝一些幫助。作爲一個方面說明,我能夠做到這一點,這一行變成4行,SUB和APP分別在不同的行上(每列一行),但是我們失去了在行上比較SUB和APP的能力。

+0

雖然你重新安排你的數據,這有什麼好做任何事的人蔘照「標準化」。 – philipxy

回答

2

下面是一個使用Cross Applyunpivot的數據

SELECT ClaimId, 
     [Sub Cost], 
     [App Cost], 
     [Cost Type] 
FROM yourtable 
     CROSS apply (VALUES (SUB_AllParts,APP_AllParts, 'Parts'), 
          (SUB_AllLabor,APP_AllLabor,'Labor')) 
          tc ([Sub Cost], [App Cost], [Cost Type]) 
+0

工作像一個魅力。謝謝你的幫助。 –

0

一種方式試試這個:

select claimid 
     ,sub_allparts as 'sub cost' 
     ,app_allparts as 'app cost' 
     ,'"Parts"' as 'Cost Type' 
     from claim 
union all 
select claimid 
     ,sub_alllabor as 'sub cost' 
     ,app_alllabor as 'app cost' 
     ,'"Labor"' as 'Cost Type' 
     from claim