我有一个股票收盘价表。
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
我想查找收盘价为<=今天的价格的最后日期。
最新价格是7.45,所以它将是6/13/18。
在SQL 2012中编写此代码的最佳方法是什么?
答案 0 :(得分:1)
这对我有用。 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