我有北京時間,DT,[打開],用於輸入表SQL最大的前面行
Dt is yyyy-mm-dd
我想返回的每一行,其中股票=「IBM」,並返回北京時間,申卷, [打開],卷字段,然後在前面的x天僅包含一個最大列。爲了不發佈太多數據,我們假設3天。
但我不知道如何獲得正確的時間框架,以便最多隻能包含在這麼多天後。
表:
Tck Dt [Open] Volume
IBM 2010-05-21 122.160000 6881000
IBM 2010-05-24 125.260000 6876000
IBM 2010-05-25 121.470000 9498800
IBM 2010-05-26 124.890000 9085900
IBM 2010-05-27 125.050000 7726500
我需要什麼:
Tck Dt [Open] Volume Max
IBM 2010-05-21 122.160000 6881000 122.160000
IBM 2010-05-24 125.260000 6876000 125.260000
IBM 2010-05-25 121.470000 9498800 125.260000
IBM 2010-05-26 124.890000 9085900 125.260000
IBM 2010-05-27 125.050000 7726500 125.050000
這裏是我當前的SQL,但明顯不羣的最大值正確。
Select Ticker,
Dt,
[Open],
Volume,
(Select Max([Open]) from Daily_NYSE
where Ticker = 'IBM'
and Dt between DateAdd(Day,-3,'2010-05-27') and '2010-05-27') as 'Max'
from Daily_NYSE
where Ticker = 'IBM'
and Dt between DateAdd(Day,-6,'2010-05-27') and '2010-05-27'
謝謝! Adam
對於什麼RDBMS?看起來SQL Servery,但是什麼版本?還有3個交易日還是3個日曆日? – 2010-08-16 22:01:49
MS SQL Server 2008R2。 3個日曆天。 – user422224 2010-08-16 22:05:14
我想我是不正確的,我正在尋找市場日子,而不是日曆天:>) – user422224 2010-08-16 22:27:47