0
日付が日付範囲内にある場合は、テーブルからデータを除外しようとしています。これは単一の日付だった場合、それは簡単で、次のようになります。複数の日付範囲をフィルタリングする - SQL
START_DATE END_DATE VALUE_NAME
06-NOV-17 13:16:00 06-NOV-17 13:17:00 NAMEINQUESTION
06-NOV-17 16:34:00 17-NOV-17 16:13:00 NAMEINQUESTION
13-NOV-17 18:05:00 13-NOV-17 18:10:00 NAMEINQUESTION
13-NOV-17 20:02:00 13-NOV-17 20:03:00 NAMEINQUESTION
13-NOV-17 20:05:00 13-NOV-17 20:20:00 NAMEINQUESTION
15-NOV-17 15:14:00 15-NOV-17 15:18:00 NAMEINQUESTION
:
SELECT * FROM XYZ WHERE XYZ.DATE NOT BETWEEN DATE1 AND DATE2;
しかし、この特定の要件のために、私は別のテーブルに保存され、コンペアしたい多くの日付(EXCLUDE_THESE_DATES)を持っている
私はこれらの日付に該当するすべての値を取得することができましたが、私が本当に探しているものは何も得られないようです(その日付帯にない日付)。
SELECT
FLD.VALUE, FLD.FILTERDATE, ETED.START_DATE, ETED.END_DATE
FROM
FULL_LIST_OF_DATES FLD,
EXCLUDE_THESE_DATES ETD
WHERE FLD.VALUE_NAME = ETD.VALUE_NAME
AND FLD.VALUE_TYPE_ID = 1007
AND FLD.FILTERDATE BETWEEN '01-OCT-17 00:00:00' AND '01-APR-18
00:00:00'
AND (FLD.FILTERDATE >= ETED.START_DATE
AND FLD.FILTERDATE <= ETED.END_DATE)
AND FLD.VALUE_NAME = 'NAMEINQUESTION'
どのような援助をいただければ幸いです!
編集: フィードバックに基づく結果。 16:34:51は06-NOV-17 16:34:00から17-NOV-17 16:13:00にも入っていたので表示されません。
VALUE FILTERDATE START_DATE END_DATE
480.703461 06-NOV-17 16:34:51 28-NOV-17 13:26:00 29-NOV-17 23:36:00
480.703461 06-NOV-17 16:34:51 13-NOV-17 18:05:00 13-NOV-17 18:10:00
480.703461 06-NOV-17 16:34:51 06-NOV-17 13:16:00 06-NOV-17 13:17:00
480.703461 06-NOV-17 16:34:51 13-NOV-17 20:05:00 13-NOV-17 20:20:00
480.703461 06-NOV-17 16:34:51 15-NOV-17 15:14:00 15-NOV-17 15:18:00
480.703461 06-NOV-17 16:34:51 28-NOV-17 13:10:00 28-NOV-17 13:13:00
480.703461 06-NOV-17 16:34:51 13-NOV-17 20:02:00 13-NOV-17 20:03:00
483.04837 06-NOV-17 16:35:19 28-NOV-17 13:26:00 29-NOV-17 23:36:00
483.04837 06-NOV-17 16:35:19 13-NOV-17 18:05:00 13-NOV-17 18:10:00
483.04837 06-NOV-17 16:35:19 06-NOV-17 13:16:00 06-NOV-17 13:17:00
483.04837 06-NOV-17 16:35:19 13-NOV-17 20:05:00 13-NOV-17 20:20:00
483.04837 06-NOV-17 16:35:19 15-NOV-17 15:14:00 15-NOV-17 15:18:00
483.04837 06-NOV-17 16:35:19 28-NOV-17 13:10:00 28-NOV-17 13:13:00
うん、いくつかの古い習慣は、ハード死ぬのではなく、
JOIN ..ON
構文を使用します。私はそれが私が掲示する前にやったことだと思って、私が探していた結果を私には与えなかったが、私はもう一度やり直すだろう:)。 – GregN@GregN:あなたの 'FULL_LIST_OF_DATES'のレコードを知らなくても、クエリを構築したりテストしたりするのは難しいです。上記のものがうまくいかない場合は、私が述べた' OR'条件を使って試してみてください。 –
編集を追加しました。それは条件を満たしていないレコードを引っ張った。 – GregN