2017-07-12 6 views
0

Hey, ich versuche, zwei Spalten zu schwenken, wenn Sie meinen Code unten sehen, konnte ich meinen Pivot auf einer Spalte ausführen. Gibt es eine Möglichkeit, meine ReturnedItems-Spalte direkt neben ShippedItems zu drehen?MSSQL Pivot auf zwei Spalten

Danke

declare @t table (
store varchar(20), 
ShippedItems int, 
ReturnedItems int 
) 

insert into @t 
values ('Walmart',1,2) 
insert into @t 
values ('Lowes',1,2) 
insert into @t 
values ('Home Depot',1,2) 

select * from (
select * from @t 
) pivottable 
pivot 
(
sum(ShippedItems) 
for store in (Walmart,Lowes,[Home Depot]) 
) x 
+0

Was ist das gewünschte Layout/Ergebnisse? –

+1

Mögliches Duplikat von [In Sql Server, wie für mehrere Spalten Pivot] (https://stackoverflow.com/questions/38067490/in-sql-server-how-to-pivot-for-multiple-columns) – scsimon

Antwort

1

Ist das, was Sie suchen?

SELECT 
    Walmart_ShippedItems = MAX(CASE WHEN t.store = 'Walmart' THEN t.ShippedItems END), 
    Walmart_ReturnedItems = MAX(CASE WHEN t.store = 'Walmart' THEN t.ReturnedItems END), 
    Lowes_ShippedItems = MAX(CASE WHEN t.store = 'Lowes' THEN t.ShippedItems END), 
    Lowes_ReturnedItems = MAX(CASE WHEN t.store = 'Lowes' THEN t.ReturnedItems END), 
    HomeDepot_ShippedItems = MAX(CASE WHEN t.store = 'Home Depot' THEN t.ShippedItems END), 
    HomeDepot_ReturnedItems = MAX(CASE WHEN t.store = 'Home Depot' THEN t.ReturnedItems END) 
FROM 
    @t t 

HTH, Jason