日付範囲に基づいてカウントを行う SQL ステートメントを作成しています。しかし、何らかの理由でデータが返されません。日付範囲でカウントをフィルタリングする前に、すべて正常に機能します。これがそのコードです。
SELECT
CR.GCR_RFP_ID
,S.RFP_RECEIVED_DT
,CR.GCR_RECEIVED_DT
,CT.GCT_LOB_IND
FROM ADM.GROUP_CHANGE_TASK_FACT CT
JOIN ADM.B_GROUP_CHANGE_REQUEST_DIM CR
ON CR.GROUP_CHANGE_REQUEST_KEY = CT.GROUP_CHANGE_REQUEST_KEY
JOIN ADM.B_RFP_WC_COVERAGE_DIM S
ON S. RFP_ID = CR.GCR_RFP_ID
WHERE CT.GCT_LOB_IND = 'WC'
AND CR.GCR_CHANGE_TYPE_ID IN ('10','20','30','50','60','70','80','90','100','110',
'120','130','140', '150','160','170','180','190','200',
'210','220','230','240','260','270','280','300','310',
'320','330','340','350','360','370','371','372')
AND S.RFP_AUDIT_IND = 'N'
AND S.RFP_TYPE_IND = 'A'
私が使用している日付フィールドは CR.GCR_RECIEVED_DT と呼ばれます。これはデータベースの新しいフィールド a で、すべてのレコードは 01-JAN-00 です。しかし、データを取得できることを確認するためだけに、まだカウントを行っています。今、私はこの行を追加しました:
AND CR.GCR_RECEIVED_DT LIKE '01-JAN-00'
ランダムなテストとして。私はすべての日付が同じであることを知っています。そして、問題なく動作します。したがって、その行を削除して、次のように置き換えます。
AND CR.GCR_RECEIVED_DT BETWEEN '31-DEC-99' AND '02-JAN-00'
シンプルにするために、この小さな範囲を使用しました。しかし、2000 年 1 月 1 日が間違いなくこれら 2 つの日付の間にあるにもかかわらず、データは返されません。なぜこれが起こっているのか分かりません。私もこの行を試しました:
AND CR.GCR_RECEIVED_DT = '01-JAN-00'
まだデータが返されません。LIKE でのみ動作するようです。確認しましたが、フィールドは日付型です。どんな助けでも大歓迎です。