2017-04-12 14 views
0

私は4つの日付の列 - From_Date_A、To_Date_A、From_Date_B、To_Date_Bを持っています。 From_Date_AとTo_Date_Aの間の任意の日付がFrom_Date_BとTo_Date_Bの間にある場合、何かをフラグするためのフラグ列を作成したいとします。これは可能ですか?2つの日付の列の間に2つの日付の列

+0

、あなたの質問の例がありますか?質問をよく理解できない – LONG

答えて

1

日付範囲の重複をチェックするcase式を使用した:これは、重複範囲の初期の日付が含まれていないと仮定している

select * 
    , case when To_Date_A > From_Date_B 
      and To_Date_B > From_Date_A 
     then 1 
     else 0 
     end as Flag 
from t 

そして、それは必要がある場合:

select * 
    , case when To_Date_A >= From_Date_B 
      and To_Date_B >= From_Date_A 
     then 1 
     else 0 
     end as Flag 
from t 

In depth explanation of this overlap check by Charles Bretana

+0

それは完璧です!私はそれをたくさんありがとう!また、私は新しいので、列と行に必要なデータを使って例を表示するにはどうしたらいいですか? – ajc101

+0

@ ajc101これを使用して、タブ区切りのデータ(Excelなどからコピーしたもの)からテキストテーブルhttps://senseful.github.io/web-tools/text-table/を作成し、stackoverflow – SqlZim

+1

のコードとしてフォーマットすることができます@ ajc101あなたが役に立つと思ったら答えを受け入れます。 – ITSGuru

関連する問題