2015-10-14 103 views
1

我有一個下面的SQL查詢,它返回兩個不同指數的指數價格。在SQL數據透視查詢中的數據規範化

select * 
from INDICEPRICEHISTORY 
PIVOT (MAX(PRICE) 
FOR TICKER IN 
([OMXH25],[UX]) 
) 
as Pricelist 
ORDER BY EOD DESC; 

查詢返回:

EOD   OMXH25 UX 
2015-10-10 3157.20 843.48 
2015-10-09 3157.20 843.48 
2015-10-08 3138.35 837.37 
2015-10-07 3138.47 835.43 

有沒有辦法正常化的一些基點SQL查詢這個數據,例如2015年10月7日爲100點和其他值與那。下面樣機:

EOD   OMXH25  UX 
2015-10-10 100.5967876 100.9635756 
2015-10-09 100.5967876 100.9635756 
2015-10-08 99.99617648 100.2322157 
2015-10-07 100   100 

思想是使這兩個(或更多個)的列線圖中可比較的。

有什麼建議嗎?這甚至可能在SQL?我正在使用MSSQL 2014.

謝謝!

+0

您從結果中選擇頂1。然後在該top1和calc r.value * 100/t.value上交叉連接結果(r結果,t top 1) –

回答

3

下面是一個例子:

;with r as(your current query), 
     t as(select top 1 * from r order by eod) 
select r.eod, 
     r.omxh25 * 100/t.omxh25 as omxh25, 
     r.ux * 100/t.ux as ux 
from r 
cross join t