2017-03-01 2 views
0

Ich versuche, Preisdaten für mehrere Aktien zu ziehen. Alles ist in Spalten, einschließlich der Ticker, wenn ich versuche, Daten für mehr als eine Aktie zu ziehen, kann ich nicht herausfinden, wie man den Ticker in der Spaltenüberschrift für jede Aktie hat. Der folgende Code funktioniert für eine Aktie, gibt aber nichts für zwei zurück.SQL Change Spaltenüberschrift auf Wert von einer anderen Spalte

Dies ist, was ich für ein Lager ist:

RecDate  TKR PRI 

9/18/2002 CVS 13.86 

Aber ich möchte dies umgehen können:

RecDate  CVS ORCL 

9/18/2002 13.86 60 

dies wurde anhand der Preise ziehen:

SELECT RecDate, TKR, PRI FROM dbo.Stockdatabase 
WHERE RecDate >= DateAdd(YEAR, -5, GetDate()) AND TKR='CSCO' 
ORDER BY TKR 

Wie kann ich dies für mehrere Aktien arbeiten? Vielen Dank!

+1

Klingt wie Sie eine dynamische Dreh – scsimon

Antwort

2

können Sie bedingte Aggregation verwenden oder pivot:

SELECT RecDate, 
     MAX(CASE WHEN TKR = 'CSCO' THEN PRI END) as pri_csco, 
     MAX(CASE WHEN TKR = 'ABC' THEN PRI END) as pri_abc 
FROM dbo.Stockdatabase s 
WHERE RecDate >= DateAdd(YEAR, -5, GetDate()) AND 
     TKR IN ('CSCO' , 'ABC') 
GROPU BY RecDate 
ORDER BY RecDate; 
+0

perfekt gearbeitet werden soll. Danke, Gordon! –

Verwandte Themen