[英]Join from table a single date column with another tables date range oracle 11 g
我正在嘗試從Oracle 11g數據庫構建查詢以在報表中使用。 我需要使用兩個表A和B來獲取表A列日期和表B列值
表A:
Dt
01/01/2014
02/01/2014
03/01/2014
04/01/2014
05/01/2014
06/01/2014
表B:
Value Start Dt End Dt
XXXX 01/01/2014 03/01/2014
YYYY 05/01/2014 06/01/2014
最終輸出:
A.Dt B.Value
01/01/2014 XXXX
02/01/2014 XXXX
03/01/2014 XXXX
04/01/2014 NULL
05/01/2014 YYYY
06/01/2014 YYYY
請幫助您在單個sql查詢中完成上述操作。
謝謝
並非所有聯接都是等聯接-您可以在聯接條件中使用BETWEEN
運算符。
SELECT a.dt, b.value
FROM a
LEFT OUTER JOIN b ON a.dt BETWEEN b.start_dt and b.end_dt
SELECT A.DT ,B.VALUE
FROM A
LEFT OUTER JOIN
(
SELECT START_DT,VALUE FROM B
UNION
SELECT END_DT,VALUE FROM B
) B
ON A.DT=B.START_DT
ORDER BY A.DT
這應該給您預期的輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.