2017-03-01 78 views
0

我试图为多个股票提取价格数据。一切都在列,包括当我尝试为多个股票提取数据时的代码,我无法弄清楚如何在每个股票的列标题中显示股票代码。下面的代码适用于一个股票,但两个都没有返回。SQL将列标题更改为另一列的值

这是我得到一个股票:

RecDate  TKR PRI 

9/18/2002 CVS 13.86 

但我希望能够得到这样的:

RecDate  CVS ORCL 

9/18/2002 13.86 60 

一直用这个来拉动价格:

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

如何让这项工作为多个股票?谢谢!

+1

听起来像是你想有一个动态的支点 – scsimon

回答

2

可以使用条件聚集或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

完美。谢谢,戈登! –

相关问题