feat: 洗替用マスタ作成の実装

This commit is contained in:
高木要 2023-04-11 13:36:42 +09:00
parent 3131422eb8
commit 284f36f801
2 changed files with 113 additions and 0 deletions

View File

@ -0,0 +1,48 @@
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
CREATE PROCEDURE src05.inst_merge_t_create()
SQL SECURITY INVOKER
BEGIN
-- 例外処理
-- エラーが発生した場合に一時テーブルの削除を実施
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
ROLLBACK;
SIGNAL SQLSTATE '45000'
SET MYSQL_ERRNO = @error_state, MESSAGE_TEXT = @error_msg;
END;
SET @error_state = NULL, @error_msg = NULL;
START TRANSACTION;
TRUNCATE TABLE internal05.inst_merge_t;
INSERT INTO
internal05.inst_merge_t (
dcf_dsf_inst_cd,
dup_opp_cd,
form_inst_name_kanji,
form_inst_name_kana,
inst_addr,
prefc_cd
)
SELECT
di.dcf_inst_cd,
di.dcf_inst_cd_new,
ci.form_inst_name_kanji,
ci.form_inst_name_kana,
ci.inst_addr,
ci.prefc_cd
FROM
dcf_inst_merge di
LEFT OUTER JOIN com_inst ci
ON di.dcf_inst_cd_new = ci.dcf_dsf_inst_cd
WHERE
ci.delete_flg = '0'
AND STR_TO_DATE(di.tekiyo_month, '%Y%m') <= (SELECT STR_TO_DATE(syor_date, '%Y%m%d') FROM hdke_tbl)
AND di.muko_flg = '0'
AND di.enabled_flg = 'Y';
COMMIT;
END

View File

@ -0,0 +1,65 @@
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
CREATE PROCEDURE src05.v_inst_merge_t_create()
SQL SECURITY INVOKER
BEGIN
-- 例外処理
-- エラーが発生した場合に一時テーブルの削除を実施
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
ROLLBACK;
SIGNAL SQLSTATE '45000'
SET MYSQL_ERRNO = @error_state, MESSAGE_TEXT = @error_msg;
END;
SET @error_state = NULL, @error_msg = NULL;
START TRANSACTION;
TRUNCATE TABLE internal05.v_inst_merge_t;
INSERT INTO
internal05.v_inst_merge_t (
v_inst_cd,
v_inst_cd_merge,
fcl_name,
fcl_kn_name,
fmt_addr,
prft_cd
)
SELECT
vv.v_inst_cd,
vv.v_inst_cd_merg,
fv.fcl_name,
fv.fcl_kn_name,
fv.fmt_addr,
fv.prft_cd
FROM
src05.vop_hco_merge_v vv,
src05.fcl_mst_v fv
INNER JOIN (
SELECT
v_inst_cd,
MAX(sub_num) AS sno
FROM
src05.fcl_mst_v
GROUP BY
v_inst_cd
) fmv1
ON fv.v_inst_cd = fmv1.v_inst_cd
AND fv.sub_num = fmv1.sno
WHERE
vv.v_inst_cd_merg = fv.v_inst_cd
AND STR_TO_DATE(vv.apply_dt, '%Y-%m-%d') <= (
SELECT
STR_TO_DATE(syor_date, '%Y%m%d')
FROM
src05.hdke_tbl
)
AND ((fcl_type IN ('A1','A0')) OR fcl_type BETWEEN '20' AND '29')
AND fv.rec_sts_kbn != '9'
ORDER BY
STR_TO_DATE(vv.apply_dt, '%Y-%m-%d') ASC;
COMMIT;
END