У меня есть Ticker, Dt, [Open], Volume для ввода таблицыSQL макс предыдущих строк
Dt is yyyy-mm-dd
Я хочу вернуть каждую строку где тикер = 'IBM', а также возвращающий Ticker, Dt, [Открыть], Поля тома, а затем включить столбец максимум, чтобы говорить только за предыдущие 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
Для каких СУБД? Выглядит SQL Servery, но какая версия? Также 3 торговых дня или 3 календарных дня? –
MS SQL Server 2008R2. 3 календарных дня. – user422224
Я думаю, что был неправ, я ищу рыночные дни, а не календарные дни:>) – user422224