SQL поиск даты для определенного условия - PullRequest
0 голосов
/ 30 июня 2018

У меня есть таблица цен закрытия акций.

Ticker  Date    Close
BCD 06/28/18     7.45 
BCD 06/27/18     8.01 
BCD 06/26/18     7.51 
BCD 06/25/18     8.24 
BCD 06/24/18     8.09 
BCD 06/23/18     8.41 
BCD 06/22/18     8.66 
BCD 06/21/18     10.42 
BCD 06/20/18     10.42 
BCD 06/19/18     10.73 
BCD 06/18/18     10.72 
BCD 06/17/18     10.44 
BCD 06/16/18     8.74 
BCD 06/15/18     8.70 
BCD 06/14/18     8.49 
BCD 06/13/18     6.00 
BCD 06/12/18     5.87 
BCD 06/11/18     5.97 
BCD 06/10/18     5.91 
BCD 06/09/18     5.89 
BCD 06/08/18     6.40 

Я хочу найти последнюю дату, когда было закрыто <= сегодняшняя цена. </p>

Последняя цена 7,45, поэтому она будет 6/13/18.

Какой лучший способ кодировать это в SQL 2012?

1 Ответ

0 голосов
/ 30 июня 2018

Это сработало для меня. SQL Server 2008, так что, возможно, есть некоторая несовместимость с 2012, но это кажется простым.

SELECT TOP 1 [Date] FROM prices
  WHERE [Close] <= (
    SELECT [Close] FROM prices WHERE [Date] = (SELECT MAX([Date]) FROM prices)
  )
  AND [Date] < (SELECT MAX([Date]) FROM prices)
  ORDER BY [Date] DESC
...