我有問題可以通過product_id比較分區中的某個日期。我需要檢查date_to desc排序的最後一個date_to是否在日期範圍內的date_from和date_to之間。Oracle SQL - 將日期與日期範圍進行比較
這裏的例子分區:
PRODUCT_ID | date_from | DATE_TO
1 | 2017-01-01| 2019-05-01
1 | 2017-04-15| 2017-06-10
1 | 2017-03-15| 2017-03-25
1 | 2017-01-19| 2017-02-01
如何檢查日期最後一排是迄今爲止在分區中的product_id的任何範圍之間。該訂單必須完好無損。我試着用LAG函數,但它只檢查前一個範圍,我試着用min(date_from)和max(date_to),即使在這裏也會出問題,因爲min是從第一行開始,而max是從第二個開始,因爲我需要限制根據產品檢查每個日期範圍而不是整個範圍。該解決方案將檢查:
*(分區的第一行)2017年1月1日和2019年5月1日(TRUE)
*之間2017年2月1日2017年2月1日之間(第二行分區)2017-04-15和2017-06-10(FALSE)
* 2017-02-01之間(第三排分區)2017-03-15和2017-03-25(FALSE)
結果:是!日期是一定範圍內的日期之間)OK只是標誌1就足夠了:)
我會爲我的英語:)
編輯任何幫助,您可以提供感激和惋惜: 電流問題是如何按照先前的範圍檢查每個date_to。例如。
(第二次date_to)2017-06-10之間(第一排)2017-01-01 | 2019-05-01
(3rd date_to)2017-03-25之間(第一排)2017-01-01 | 2019-05-01和(第三日期)2017-03-25之間(第二排)2017-04-15 | 2017年6月10日
等
看起來相當不錯!我會嘗試。你有什麼想法如何檢查每個date_to與以前的範圍?例如從第二排比較第一,第三與第一和第二比較,最後一個比較與第一,第二和第三... – caruzo