對不起混淆的標題。請告訴,如果可以通過數據庫請求來完成。假設我們有如下表選擇行數等於或低於給定值並且與其最接近的行
ind_id name value date
----------- -------------------- ----------- ----------
1 a 10 2010-01-01
1 a 20 2010-01-02
1 a 30 2010-01-03
2 b 10 2010-01-01
2 b 20 2010-01-02
2 b 30 2010-01-03
2 b 40 2010-01-04
3 c 10 2010-01-01
3 c 20 2010-01-02
3 c 30 2010-01-03
3 c 40 2010-01-04
3 c 50 2010-01-05
4 d 10 2010-01-05
我需要查詢所有行,包括各ind_id
一次給定的日期,如果有針對給定的日期沒有ind_id
,然後採取就近下日期,如果沒有任何較低日期,然後用空值返回ind_id + name(名稱/ ind_id對相等)。 例如,日期是2010-01-04,我希望下面的結果:
ind_id name value date
----------- -------------------- ----------- ----------
1 a 30 2010-01-03
2 b 40 2010-01-04
3 c 40 2010-01-04
4 d NULL NULL
如果有可能,我會很感激,如果有人幫我查詢的建築。我使用SQL Server 2008的
「名稱/ ind_id對相等」 - 這是否意味着對於給定的id,名稱將始終是相同的?如果是這樣,它表示數據庫模式中的非規範化,除非基礎數據來自多個表 - 顯示的數據是來自單個表還是來自多個表? –
@Mark Bannister是的,我知道,這個表是另一個請求的結果:) –
好吧,所以它是從一個表 - 謝謝。 –