操作
タスク #6623
完了縮小日取得モジュールの検討依頼
開始日:
期日:
進捗率:
100%
予定工数:
実開始日:
DD名:
INCLUDE:
DSN:
バグ区分:
QA分析:
方針(第一貨物):
実終了日:
ツールのバージョン:
AsIsSource行:
進捗計画:
設計・開発者:
画面ID:
機能区分:
機能ID:
レビュー指摘区分:
検査完了日:
検査依頼日:
説明

上記の類似ロジックが多数あると思いますので、共通化クラス化すると設計及び開発負担が減ると思いますが・・・
如何でしょうか???
使用するプログラムでは、
基準となる日付(YYYYMMDD)と縮小日(35日前)を共通クラスに渡し、削除日を受け取る。
共通関数では、
取得した日付から縮小日を減算し、削除日を返す。
減算方法は、SELECT文で可能であればSELECT文でも可。出来なければ、図の赤枠部分と同様な算出方法(前年も含め)でも可。
ファイル
奥山 仁樹 さんが7ヶ月前に更新 · 編集済み
クエリ案
同じ年の中に同じ通算日数が無い前提
WITH TARGET_DT AS (
SELECT
T.*
, (DAYTGOKE - :縮小日) WK_DAYGOKE
FROM
VKKDMST T
WHERE
T.DAYTYMDK = :基準日
)
SELECT
T.*
FROM
VKKDMST T
INNER JOIN TARGET_DT
ON SUBSTR(T.DAYTYMDK, 1, 4) = CASE
WHEN TARGET_DT.WK_DAYGOKE <= 0
THEN TO_NCHAR(TO_NUMBER(SUBSTR(TARGET_DT.DAYTYMDK, 1, 4)) - 1) --年跨ぎ
ELSE SUBSTR(TARGET_DT.DAYTYMDK, 1, 4)
END
AND T.DAYTGOKE = CASE
WHEN (TARGET_DT.WK_DAYGOKE <= 0)
THEN TARGET_DT.WK_DAYGOKE + 365 --年跨ぎ
ELSE TARGET_DT.WK_DAYGOKE
END
;
操作