次の PLSQL クエリによって決定される「日付」の範囲に基づいて行を選択しようとしています。これは現在、必要な結果を提供します - スクリプトが実行される曜日の最後の 10 週間の「日付」オブジェクトです。実行されます。例えば。5 月 22 日に実行すると、5 月 15 日、5 月 8 日などと続きます。
SELECT SYSDATE-(level*7) as DateRange
FROM DUAL
CONNECT BY LEVEL <=10
これにより、日付のリストが生成されます。次に、これを親のselectステートメントと組み合わせて、上記によって出力された日付が「DAY」(OracleタイプのDATE)列にある行を取得しようとします。
SELECT * FROM NEM_RM16
WHERE NEM_RM16.DAY IN (
SELECT SYSDATE-(level*7) as DateRange
FROM DUAL
CONNECT BY LEVEL <=10);
上記によって生成された日付を持つ行があることを知っていても、結果は得られません。
「IN」演算子を使用する場合、値を一重引用符で囲む必要があると読みましたが、上記のクエリでこれを行う方法がわかりません。
IN 演算子を使用してこれを正しい方法で行っていますか、それとも別の種類のネストされたクエリを実行する必要がありますか?