1

ユーザーが将来実行できるレポートを作成しようとしています。この場合、過去 6 週間のデータとなる日付範囲を指定する必要があります。このレポートで使用している日付フィールドは app_receipt_date です。Excels today() 関数に似た関数の使用方法を学ぼうとしています。

これがSQLステートメントです。これを最後に実行した日付は無視してください。繰り返しますが、私はこれを「自動化」しようとしています。

  select a.underwriting_app_id,
   q.underwriting_quote_id,
   a.application_source,
   q.insured_id,
   q.policy_year,
   a.underwriting_rep,
   --b.marketing_rep,
   a.mail_name,
   a.app_receipt_date,
   a.effective_date,
   a.expiration_date,
   SUBSTR(TO_CHAR(a.effective_date, 'MM/DD/YYYY'), 1,2) as Month,
   a.underwriting_app_status,
   s.description,
   a.last_status_date,
   a.governing_class_code_id,
   q.annual_premium,
   q.create_date,
   q.create_user

 from underwriting_app a,
 app_quote q,
 underwriting_app_status s


where a.underwriting_app_id = q.underwriting_app_id and
  a.underwriting_app_status = s.underwriting_app_status and
  --a.agency_no = b.agency_no (+) and
  q.active_quote_flag = 'Y' and
  a.app_receipt_date > to_date('04-Nov-2012','dd-mm-yyyy') and
  a.app_receipt_date < to_date('17-Dec-2012','dd-mm-yyyy')

よろしくお願いいたします。

ブラッド

4

2 に答える 2

2

Oracle を使用している場合は、現在の日付に「SYSDATE」を使用すると、直接足し算と引き算で日数を追加できます。1 週間が 7 日であると仮定して問題がなければ、次のことができます。

SELECT * FROM Your_Table
WHERE app_receipt_date > SYSDATE - (6 * 7);

「* 7」は、6 週間に 7 日間を掛けていることを示しています。

于 2012-12-18T19:50:16.550 に答える
1

T-SQLを使用している場合は、GETDATE()関数を使用して今日の日付を取得し、次にDATEADD()関数を使用して値を調整して範囲を取得できるため、次のようなものを使用できます。

SELECT * FROM Your_Table
WHERE app_receipt_date > DATEADD(week,-6,GETDATE());

お役に立てれば。

于 2012-12-18T19:27:41.300 に答える