2016-08-24 3 views
2

Ich habe Tabelle Price:UNPIVOT SQL mit Spalten Abfrage

WhseKey ItemKey CurrID Sheet1Price Sheet2Price Sheet3Price Sheet4Price 
24  452  USD  14.90000  14.90000 13.70000  12.50000 11.03000 
24  453  USD  1.15000  1.15000 1.05000  0.95000  0.85000 
24  454  USD  12.95000  12.95000 11.90000  10.88000 9.70000 
24  459  USD  3.95000  3.95000 3.65000  3.30000  2.92000 

ich das Ergebnis möchte wie sein:

CurrID Name ID 
USD Sheet1Price Sheet1Price 
USD Sheet2Price Sheet2Price 
USD Sheet3Price Sheet3Price 
USD Sheet4Price Sheet4Price 

Aktuelle Abfrage:

select UPV.CurrID , UPV.Name 
from Price 
unpivot 
(
    Name 
    for Price in (Sheet1Price, Sheet2Price, Sheet3Price, Sheet4Price) 
) UPV; 

Aber das Ergebnis nicht ist richtig, es kommt als:

CurrID Name 
USD 14.90000 
USD 13.70000 
USD 12.50000 
USD 11.03000 
USD 1.15000 
USD 1.05000 
USD 0.95000 
USD 0.85000 
USD 12.95000 
USD 11.90000 

Was ich vermisse?

+0

Sind Sie für die Ausgabe fragt die Feldnamen enthalten, anstatt ihre Werte? Warum geben Sie in jeder Zeile zweimal 'Blatt * N * Preis' aus? –

Antwort

0

Zur Ausgabe von Namen eingereicht Sie UPV.Price verwenden sollten, versuchen Sie dies:

select WhseKey, ItemKey, UPV.CurrID , UPV.Name, UPV.Price 
from Price 
unpivot 
(
    Price 
    for Name in (Sheet1Price, Sheet2Price, Sheet3Price, Sheet4Price) 
) UPV;