2017-10-06 13 views
-3

私はそれに日付フィールドを持っているテーブルTABLE1を持って、TXN_DATEと私は別のテーブルを持っているTABLE2名前フィールドTXN_DATE TABLE1.TXN_DATEがTABLE2.TXN_DATEの+3日または-3日の間にあるテーブルの両方からレコードを照合します。オラクルの+/- 3日の日付範囲内のレコードを見つける

ご協力いただければ幸いです。

+0

は、OracleとMySQLをタグ付けしている - 彼らは二つの異なるRDBMSている - これは1あなたはについての質問をしていますか? – MT0

+0

まずは、適切なタグを付けてください。間違ったdbmsのソリューションを投稿すると無駄です。次に、質問する方法を学びます。ここに良いリンクがあります。 https://stackoverflow.com/help/how-to-ask。第三に、これまでに何を試しましたか? – Eric

+0

"Oracleの"というタイトルのMySQLタグが削除されました。 – MT0

答えて

-1
Select t1. column_name 
From TABLE1 t1, Table2 t2 
Where 
(
(T1.TXN_DATE=(T2. TXN_DATE +INTERVAL 1 DAY)) or (T1.TXN_DATE=(T2. TXN_DATE +INTERVAL 2 DAY)) or (T1.TXN_DATE=(T2. TXN_DATE +INTERVAL 3 DAY)) or (T1.TXN_DATE=(T2. TXN_DATE - INTERVAL 1 DAY)) or (T1.TXN_DATE=(T2. TXN_DATE - INTERVAL 2 DAY)) or (T1.TXN_DATE=(T2. TXN_DATE - INTERVAL 3 DAY)) 
) ; 
+0

これは、1日と2時間離れている場合、Oracleの日付と一致しません。 – MT0

+0

あなたは3日間と2時間離れていることを意味しますか? –

+0

いいえ、(Oracleでは) 'T1.TXN_DATE = CAST(TIMESTAMP '1970-01-01 00:00:00' AS DATE)'と 'T2.TXN_DATE = CAST(TIMESTAMP '1970-01-02 02) :00:00 'AS DATE) 'は3日以内ですが、日付の範囲を探すのではなく、日々離れた値だけを検索するため、クエリが一致しません。 – MT0

0

オラクルソリューション:

SELECT * 
FROM table1 t1 
     INNER JOIN 
     table2 t2 
     ON (t1.TXN_DATE BETWEEN t2.TXN_DATE - INTERVAL '3' DAY 
          AND t2.TXN_DATE + INTERVAL '3' DAY); 
関連する問題