我有输入表的 Ticker, Dt, [Open], Volume
Dt is yyyy-mm-dd
我想返回 ticker = 'IBM' 的每一行,还返回 Ticker、Dt、[Open]、Volume 字段,然后包含一个仅表示前 x 天的 max 列。为了不发布太多数据,假设 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,但显然没有正确分组 Max 值。
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'
谢谢!亚当