2016-05-04 13 views
-2

Ich selten PIVOT in SQL-Server verwenden, aber jetzt Anforderung ist etwas, das ich PIVOT verwenden muss. Dies ist eine einzelne Spalte, in der ich Pivot verwenden möchte.Pivot in SQL Server 2014

meine Tabellenstruktur ist wie das zum Beispiel

Branch Date   Amt1 Amt2  Amt3 
LHE  2016-05-02  155869 255878 -100009 
LHE  2016-05-03  9270 124159 -114889 
LHE  2016-05-04  95556 95556   0 
FSD  2016-05-02  155869 255878 -100009 
FSD  2016-05-03  9270 124159 -114889 
FSD  2016-05-04  95556 95556   0 

aber ich in diesem Format führen will

   LHE  LHE  LHE  FSD  FSD  FSD 
Date   Amt1 Amt2  Amt3  Amt1  Amt2  Amt3 
2016-05-02  155869 255878 -100009 155869 255878 -100009 
2016-05-03  9270 124159 -114889 9270  124159 -114889 
2016-05-04  95556 95556  0  95556  95556  0 

Wie bekomme ich diese?

+0

Denkanstoß: Freiwillige können es ablehnen, zu helfen, wenn Sie "Ich will das so schnell wie möglich" hinzufügen. – halfer

Antwort

0

EDIT: Haben Sie nicht erkennen, dass Sie Pivot verwenden benötigt. Ich behaupte immer noch, dass die folgende Lösung besser wäre.

Wenn dies alle Ihre Daten sind, dann können Sie etwas wie unten tun;

** Testdaten

CREATE TABLE #TableName (Branch varchar(3), Date datetime, Amt1 int, Amt2 int, Amt3 int) 
INSERT INTO #TableName 
VALUES 
('LHE','2016-05-02','155869','255878','-100009') 
,('LHE','2016-05-03','9270','124159','-114889') 
,('LHE','2016-05-04','95556','95556','0') 
,('FSD','2016-05-02','155869','255878','-100009') 
,('FSD','2016-05-03','9270','124159','-114889') 
,('FSD','2016-05-04','95556','95556','0') 

Abfrage mit Unterauswahl für FSD;

SELECT 
a.Date 
,a.Amt1 LHE_Amt1 
,a.Amt2 LHE_Amt2 
,a.Amt3 LHE_Amt3 
,b.Amt1 FSD_Amt1 
,b.Amt2 FSD_Amt2 
,b.Amt3 FSD_Amt3 
FROM #TableName a 
JOIN (SELECT Date, Amt1, Amt2, Amt3 FROM #TableName WHERE Branch = 'FSD') b 
ON a.date = b.date 
WHERE a.Branch = 'LHE' 

Ergebnisse;

Date      LHE_Amt1 LHE_Amt2 LHE_Amt3 FSD_Amt1 FSD_Amt2 FSD_Amt3 
2016-05-02 00:00:00.000  155869  255878  -100009  155869  255878  -100009 
2016-05-03 00:00:00.000  9270  124159  -114889  9270  124159  -114889 
2016-05-04 00:00:00.000  95556  95556  0   95556  95556  0 
+0

Ihre Lösung ist genau für weniger Branchen, aber ich habe meine Abfrage geteilt, um Datensätze zu erhalten, fügen Sie bitte eine entsprechende Lösung entsprechend. –