得到了一张有日期和价格的表格。
Date Price 2012-01-01 25 2012-01-05 12 2012-01-10 10
是否有某种功能可以让我找到“2012-01-07”的当前价格?没有我知道其他日期。
伪查询:选择当前价格('2012-01-07')
的价格谢谢!
答案 0 :(得分:3)
MySQL的:
select price from your_table
where date <= '2012-01-07'
order by date desc
limit 1
SQL Server:
select top 1 price from your_table
where date <= '2012-01-07'
order by date desc
答案 1 :(得分:1)
如果您没有使用ROW_NUMBER(),并且想要通用解决方案,则需要加入子查询。
获取所需日期,然后获取该日期的数据。
SELECT
*
FROM
yourTable
INNER JOIN
(
SELECT MAX(yourDate) AS maxDate FROM yourTable WHERE yourDate <= @dateParameter
)
AS lookup
ON yourTable.yourDate = lookup.maxDate
答案 2 :(得分:1)
select price
from table1 t
where t.date = ( select max(t2.date)
from table1 t2
where t2.date <= '2012-01-07' )
注意这不是复制和粘贴答案,因为我们不知道您的date
列的数据类型是什么。