簡體   English   中英

從表中將單個日期列與另一個表中的日期范圍聯接oracle 11 g

[英]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.

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