2017-08-24 6 views
0

私はDBの初心者です。日付に基づいてテーブルから内容を表示することに関して質問がありました。私はすべて印刷する必要がどのように私は、例えばEmpPayDateOracleの特定の日数に関連するテーブルからの行を表示するクエリ

EmpPayScaleIDと+/- 3日間で一定の値と一致するEMPLOYEEテーブルからすべてのエンティティを検索することができ、

値の形式EMPLOYEEEmpPayScaleId1001 D EmpPayDateは01 - 8月 - 17 から+/- 3日でなければなりません(からレコードを表示する必要があります29 - 7月 - 17から04-SEP-17)

私はこの試みた:

SELECT * FROM EMPLOYEE 
       WHERE EmpPayScaleId = 1001 
       AND EmpPayDate in ADD_MONTHS(01-Aug-17, -3, dd-mm-yy) 
       AND EmpPayDate in ADD_MONTHS(01-Aug-17, 3, dd-mm-yy); 

訂正:

SELECT * FROM EMPLOYEE 
       WHERE EmpPayScaleId = 1001 
       AND EmpPayDate in ADD_MONTHS(01-Aug-17, -3, 'DD-MON-YY') 
       AND EmpPayDate in ADD_MONTHS(01-Aug-17, 3, 'DD-MON-YY'); 

これは何を示していません。私の間違いはどこでしたか?
これは正しいクエリですか?

編集:
私はあなたのクエリ内の日付が誤って指定されたADD_MONTHS(01-AUG-17, 3, 'DD-MON-YY')

答えて

1

を使用する場合には、無効な引数の数を示します。 次のwhere句で十分です。

... 
WHERE EmpPayScaleId = 1001 
      AND to_date('01-Aug-17','DD-MON-YY') between EmpPayDate-3 
                and EmpPayDate+3; 
+0

魅力的な作品です!ありがとう! :D – intruder

関連する問題