簡體   English   中英

在給定日期的有效價格

[英]Valid price at given date

有一張日期和價格表。

Date                  Price
2012-01-01            25
2012-01-05            12
2012-01-10            10

是否有某種功能可以讓我找到“2012-01-07”的當前價格? 沒有我知道其他日期。

偽查詢:選擇當前價格的價格('2012-01-07')

謝謝!

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

如果您沒有使用ROW_NUMBER(),並且想要通用解決方案,則需要加入子查詢。

獲取所需的日期,然后獲取該日期的數據。

SELECT
  *
FROM
  yourTable
INNER JOIN
(
  SELECT MAX(yourDate) AS maxDate FROM yourTable WHERE yourDate <= @dateParameter
)
  AS lookup
    ON yourTable.yourDate = lookup.maxDate
 select price 
 from table1 t 
 where t.date = ( select max(t2.date) 
                  from table1 t2
                  where t2.date <= '2012-01-07' )

請注意,這不是復制和粘貼答案,因為我們不知道您的date列的數據類型是什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM