1
使用Google搜索一下,我發現這是一個有趣的問題。希望你們拍攝。檢測重疊範圍,然後在oracle中更正
有我的表
USER | MAP | STARTDAY | ENDDAY
1 | A | 20110101 | 20110105
1 | B | 20110106 | 20110110
2 | A | 20110101 | 20110107
2 | B | 20110105 | 20110110
Whant我要的是解決用戶的2
情況下,如果映射A
和B
通過幾天重疊(從20110105至20110107)。 我希望我能夠以它從不返回重疊範圍的方式查詢該表。我的輸入數據已經很好看了,所以我不必擔心衝突處理,我只想爲這些日期的任何給定的BETWEEN
獲得單個值。
的查詢可能的輸出,我試圖建立會是什麼樣
USER | MAP | STARTDAY | ENDDAY
2 | B | 20110108 | 20110110 -- pushed overlapping days ahead..
2 | A | 20110101 | 20110104 -- shrunk overlapping range
如果算法導致「無效的範圍」,例如,它甚至沒有事開始= 20110105
,結束= 20110103
,當我遇到這些情況時,我只會放空。
你們會說什麼?任何直接的方式來完成這個任務?
謝謝!
f。