入力テーブルに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ですが、明らかに最大値を正しくグループ化していません。
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'
ありがとう!アダム