0
我試圖在特定日期查找值。SQL在特定日期及時返回值
我的數據看起來像
Date Value
2013-11-02 5
2013-10-10 8
2013-09-14 6
2013-08-15 4
我怎樣才能確定什麼值是在2013年9月30日?
很明顯,答案是6,但我無法弄清SQL代碼。
感謝
我試圖在特定日期查找值。SQL在特定日期及時返回值
我的數據看起來像
Date Value
2013-11-02 5
2013-10-10 8
2013-09-14 6
2013-08-15 4
我怎樣才能確定什麼值是在2013年9月30日?
很明顯,答案是6,但我無法弄清SQL代碼。
感謝
你可以用order by
做到這一點,並限制的行數。在SQL Server語法(和Sybase和Access):
select top 1 t.*
from table t
where date <= '2013-09-30'
order by date desc;
在MySQL(和Postgres):
select t.*
from table t
where date <= '2013-09-30'
order by date desc
limit 1;
在Oracle:
select t.*
from (select t.*
from table t
where date <= '2013-09-30'
order by date desc
) t
where rownum = 1
編輯:
而且,一個SQL標準的方式(應該可以在任何數據庫中工作):
select t.*
from table t
where date = (select max(date)
from table t2
where date <= '2013-09-30'
);
道歉不清楚,這是我的第一篇文章。非常感謝你的幫助,你給了我幾個選項來運行。 – user3277669
你使用了哪個數據庫? –
由於2013-09-30沒有出現在您的數據中,因此回答爲6並不明顯。我現在假設日期表示狀態變化,並且狀態(值)保持在日期之間的最近值。如果是這樣的話,你應該在你的問題中說清楚,以便每個人都在同一頁面上。 – jbaums