少しグーグルで調べてみると、これは興味深い質問であることがわかりました。ショットをお願いします。
私のテーブルを持つ
USER | MAP | STARTDAY | ENDDAY
1 | A | 20110101 | 20110105
1 | B | 20110106 | 20110110
2 | A | 20110101 | 20110107
2 | B | 20110105 | 20110110
私が望むのは、ユーザーの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.