2017-07-06 7 views
0

私は会計月の終了日の列を持っています。この列に基づいて、私は12ヶ月前の会計開始日、24ヶ月前の会計開始日などを計算しなければなりません。会計月の開始日

add_months関数はここでは使用できません。ここではfscl月の終了日を示します。ユーザーが01-JUL-2017を選択すると、12カ月前の日付は03-JUL-16で始まります。

追加月を使用する場合、日付範囲は01-JUL-2016から01-JUL-2017に変更されますが、03-JUL-2017から01-JUL-2017に変更する必要があります。あなたのテーブルには、シーケンス内のすべての日付を持っている、あなたはパラメータ11でLAG関数を使用することができることを考えると

FISCAL MONTH END DATES 
30-JAN-16 
27-FEB-16 
02-APR-16 
30-APR-16 
28-MAY-16 
02-JUL-16 
30-JUL-16 
27-AUG-16 
01-OCT-16 
29-OCT-16 
26-NOV-16 
28-JAN-17 
25-FEB-17 
01-APR-17 
29-APR-17 
27-MAY-17 
01-JUL-17 
+0

は、以下の私の答えは有用であったなら、私が知っていると同じことを受け入れてください。 –

答えて

0

(すなわちシーケンスの11番目の前の日付)は、バインド変数としてwhere句からのユーザ入力を.Take 。 (WHERE TO_CHAR(DT、 'DD-MON-YY')=:curr_fiscal_end_dt)

 SELECT Prev_fisc_start_date FROM 
      (
       SELECT DT, LAG(DT, 11) OVER (ORDER BY DT) + 1 Prev_fisc_start_dt FROM 
       Your_table 

      ) WHERE TO_CHAR(DT,'DD-MON-YY') ='01-JUL-2017'; 
関連する問題