feat: 48-1.卸実績洗替
This commit is contained in:
parent
0bdcc1fc4a
commit
5f4efd451d
@ -11,3 +11,9 @@ ULTMARC_BACKUP_FOLDER=ultmarc
|
|||||||
JSKULT_CONFIG_BUCKET=**********************
|
JSKULT_CONFIG_BUCKET=**********************
|
||||||
JSKULT_CONFIG_CALENDAR_FOLDER=jskult/calendar
|
JSKULT_CONFIG_CALENDAR_FOLDER=jskult/calendar
|
||||||
JSKULT_CONFIG_CALENDAR_HOLIDAY_LIST_FILE_NAME=jskult_holiday_list.txt
|
JSKULT_CONFIG_CALENDAR_HOLIDAY_LIST_FILE_NAME=jskult_holiday_list.txt
|
||||||
|
# 連携データ抽出期間
|
||||||
|
SALES_LAUNDERING_EXTRACT_DATE_PERIOD=0
|
||||||
|
# 洗替対象テーブル名
|
||||||
|
SALES_LAUNDERING_TARGET_TABLE_NAME=src05.sales_lau
|
||||||
|
# 卸実績洗替で作成するデータの期間(年単位)
|
||||||
|
SALES_LAUNDERING_TARGET_YEAR_OFFSET=5
|
||||||
@ -1,5 +1,7 @@
|
|||||||
from src.batch.common.batch_context import BatchContext
|
from src.batch.common.batch_context import BatchContext
|
||||||
from src.batch.laundering import create_inst_merge_for_laundering, emp_chg_inst_laundering, ult_ident_presc_laundering
|
from src.batch.laundering import (
|
||||||
|
create_inst_merge_for_laundering, emp_chg_inst_laundering,
|
||||||
|
ult_ident_presc_laundering, sales_results_laundering)
|
||||||
from src.logging.get_logger import get_logger
|
from src.logging.get_logger import get_logger
|
||||||
|
|
||||||
batch_context = BatchContext.get_instance()
|
batch_context = BatchContext.get_instance()
|
||||||
@ -21,7 +23,7 @@ def exec():
|
|||||||
# 納入先処方元マスタ洗替
|
# 納入先処方元マスタ洗替
|
||||||
ult_ident_presc_laundering.exec()
|
ult_ident_presc_laundering.exec()
|
||||||
# 卸販売洗替
|
# 卸販売洗替
|
||||||
|
sales_results_laundering.exec()
|
||||||
|
|
||||||
# # 並列処理のテスト用コード
|
# # 並列処理のテスト用コード
|
||||||
# import time
|
# import time
|
||||||
|
|||||||
@ -2,6 +2,7 @@ from src.db.database import Database
|
|||||||
from src.error.exceptions import BatchOperationException
|
from src.error.exceptions import BatchOperationException
|
||||||
from src.logging.get_logger import get_logger
|
from src.logging.get_logger import get_logger
|
||||||
from src.batch.batch_functions import logging_sql
|
from src.batch.batch_functions import logging_sql
|
||||||
|
from src.system_var import environment
|
||||||
|
|
||||||
logger = get_logger('卸実績洗替')
|
logger = get_logger('卸実績洗替')
|
||||||
|
|
||||||
@ -12,15 +13,15 @@ def exec():
|
|||||||
db.connect()
|
db.connect()
|
||||||
logger.debug('処理開始')
|
logger.debug('処理開始')
|
||||||
# 卸販売実績テーブル(洗替後)過去5年以前のデータ削除
|
# 卸販売実績テーブル(洗替後)過去5年以前のデータ削除
|
||||||
_call_sales_lau_delete(db, 'sales_lau', 5)
|
_call_sales_lau_delete(db)
|
||||||
# 卸販売実績テーブル(洗替後)作成
|
# 卸販売実績テーブル(洗替後)作成
|
||||||
_call_sales_lau_upsert(db, 'sales_lau', '', '')
|
_call_sales_lau_upsert(db)
|
||||||
# 1:卸組織洗替
|
# 1:卸組織洗替
|
||||||
_call_whs_org_laundering(db, 'sales_lau')
|
_call_whs_org_laundering(db)
|
||||||
# 3:HCO施設コードの洗替
|
# 3:HCO施設コードの洗替
|
||||||
_update_sales_lau_from_vop_hco_merge_v(db, 'sales_lau')
|
_update_sales_lau_from_vop_hco_merge_v(db)
|
||||||
# 4:メルク施設コードの洗替
|
# 4:メルク施設コードの洗替
|
||||||
_update_mst_inst_laundering(db, 'sales_lau')
|
_update_mst_inst_laundering(db)
|
||||||
logger.debug('処理終了')
|
logger.debug('処理終了')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise BatchOperationException(e)
|
raise BatchOperationException(e)
|
||||||
@ -28,35 +29,49 @@ def exec():
|
|||||||
db.disconnect()
|
db.disconnect()
|
||||||
|
|
||||||
|
|
||||||
def _call_sales_lau_delete(db: Database, target_table: str, set_year: int):
|
def _call_sales_lau_delete(db: Database):
|
||||||
# 卸販売実績テーブル(洗替後)過去5年以前のデータ削除
|
# 卸販売実績テーブル(洗替後)過去5年以前のデータ削除
|
||||||
logger.info('sales_lau_delete(プロシージャ―) 開始')
|
logger.info('sales_lau_delete(プロシージャ―) 開始')
|
||||||
db.execute(f'CALL src05.sales_lau_delete("{target_table}", {set_year})')
|
db.execute(f"""
|
||||||
|
CALL src05.sales_lau_delete(
|
||||||
|
'{environment.SALES_LAUNDERING_TARGET_TABLE_NAME}',
|
||||||
|
{environment.SALES_LAUNDERING_TARGET_YEAR_OFFSET}
|
||||||
|
)
|
||||||
|
""")
|
||||||
logger.info('sales_lau_delete(プロシージャ―) 終了')
|
logger.info('sales_lau_delete(プロシージャ―) 終了')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
def _call_sales_lau_upsert(db: Database, target_table: str, extract_from_date: str,
|
def _call_sales_lau_upsert(db: Database):
|
||||||
extract_to_date: str):
|
|
||||||
# 卸販売実績テーブル(洗替後)作成
|
# 卸販売実績テーブル(洗替後)作成
|
||||||
logger.info('sales_lau_delete(プロシージャ―) 開始')
|
logger.info('sales_lau_upsert(プロシージャ―) 開始')
|
||||||
db.execute(f'CALL src05.sales_lau_delete("{target_table}", "{extract_from_date}", "{extract_to_date}")')
|
db.execute(f"""
|
||||||
logger.info('sales_lau_delete(プロシージャ―) 終了')
|
CALL src05.sales_lau_upsert(
|
||||||
|
'{environment.SALES_LAUNDERING_TARGET_TABLE_NAME}',
|
||||||
|
(src05.get_syor_date() - {environment.SALES_LAUNDERING_EXTRACT_DATE_PERIOD}),
|
||||||
|
src05.get_syor_date()
|
||||||
|
)
|
||||||
|
""")
|
||||||
|
logger.info('sales_lau_upsert(プロシージャ―) 終了')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
def _call_whs_org_laundering(db: Database, target_table: str):
|
def _call_whs_org_laundering(db: Database):
|
||||||
# 卸組織洗替
|
# 卸組織洗替
|
||||||
logger.info('whs_org_laundering(プロシージャ―) 開始')
|
logger.info('whs_org_laundering(プロシージャ―) 開始')
|
||||||
db.execute(f'CALL src05.whs_org_laundering("{target_table}")')
|
db.execute(f"""
|
||||||
|
CALL src05.whs_org_laundering(
|
||||||
|
'{environment.SALES_LAUNDERING_TARGET_TABLE_NAME}'
|
||||||
|
)
|
||||||
|
""")
|
||||||
logger.info('whs_org_laundering(プロシージャ―) 終了')
|
logger.info('whs_org_laundering(プロシージャ―) 終了')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
def _update_sales_lau_from_vop_hco_merge_v(db: Database, target_table: str):
|
def _update_sales_lau_from_vop_hco_merge_v(db: Database):
|
||||||
# HCO施設コードの洗替
|
# HCO施設コードの洗替
|
||||||
if _count_vop_hco_merge_v(db) >= 1:
|
if _count_vop_hco_merge_v(db) >= 1:
|
||||||
_call_v_inst_merge_laundering(db, target_table)
|
_call_v_inst_merge_laundering(db)
|
||||||
return
|
return
|
||||||
logger.info('V施設統合マスタにデータは存在しません')
|
logger.info('V施設統合マスタにデータは存在しません')
|
||||||
return
|
return
|
||||||
@ -81,32 +96,40 @@ def _count_vop_hco_merge_v(db: Database) -> int:
|
|||||||
return result[0]['cnt']
|
return result[0]['cnt']
|
||||||
|
|
||||||
|
|
||||||
def _call_v_inst_merge_laundering(db: Database, target_table: str):
|
def _call_v_inst_merge_laundering(db: Database):
|
||||||
# HCO施設コードの洗替(テーブル更新)
|
# HCO施設コードの洗替(プロシージャ―の呼び出し)
|
||||||
logger.info('v_inst_merge_laundering(プロシージャ―) 開始')
|
logger.info('v_inst_merge_laundering(プロシージャ―) 開始')
|
||||||
db.execute(f'CALL src05.v_inst_merge_laundering("{target_table}")')
|
db.execute(f"""
|
||||||
|
CALL src05.v_inst_merge_laundering(
|
||||||
|
'{environment.SALES_LAUNDERING_TARGET_TABLE_NAME}'
|
||||||
|
)
|
||||||
|
""")
|
||||||
logger.info('v_inst_merge_laundering(プロシージャ―) 終了')
|
logger.info('v_inst_merge_laundering(プロシージャ―) 終了')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
def _update_mst_inst_laundering(db: Database, target_table: str):
|
def _update_mst_inst_laundering(db: Database):
|
||||||
# メルク施設コードの洗替
|
# メルク施設コードの洗替
|
||||||
_call_hco_to_mdb_laundering(db, target_table)
|
_call_hco_to_mdb_laundering(db)
|
||||||
_update_sales_lau_from_dcf_inst_merge(db, target_table)
|
_update_sales_lau_from_dcf_inst_merge(db)
|
||||||
|
|
||||||
|
|
||||||
def _call_hco_to_mdb_laundering(db: Database, target_table: str):
|
def _call_hco_to_mdb_laundering(db: Database):
|
||||||
# A:医療機関のデータはMDB変換表からHCO⇒DCFへ変換
|
# A:医療機関のデータはMDB変換表からHCO⇒DCFへ変換
|
||||||
logger.info('hco_to_mdb_laundering(プロシージャ―) 開始')
|
logger.info('hco_to_mdb_laundering(プロシージャ―) 開始')
|
||||||
db.execute(f'CALL src05.hco_to_mdb_laundering("{target_table}")')
|
db.execute(f"""
|
||||||
|
CALL src05.hco_to_mdb_laundering(
|
||||||
|
'{environment.SALES_LAUNDERING_TARGET_TABLE_NAME}'
|
||||||
|
)
|
||||||
|
""")
|
||||||
logger.info('hco_to_mdb_laundering(プロシージャ―) 終了')
|
logger.info('hco_to_mdb_laundering(プロシージャ―) 終了')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
def _update_sales_lau_from_dcf_inst_merge(db: Database, target_table: str):
|
def _update_sales_lau_from_dcf_inst_merge(db: Database):
|
||||||
# B:DCF施設統合マスタがある場合は、コードを変換し、住所等をSETする
|
# B:DCF施設統合マスタがある場合は、コードを変換し、住所等をSETする
|
||||||
if _count_dcf_inst_merge(db) >= 1:
|
if _count_dcf_inst_merge(db) >= 1:
|
||||||
_call_inst_merge_laundering(db, target_table)
|
_call_inst_merge_laundering(db)
|
||||||
return
|
return
|
||||||
logger.info('DCF施設統合マスタにデータは存在しません')
|
logger.info('DCF施設統合マスタにデータは存在しません')
|
||||||
return
|
return
|
||||||
@ -131,9 +154,13 @@ def _count_dcf_inst_merge(db: Database) -> int:
|
|||||||
return result[0]['cnt']
|
return result[0]['cnt']
|
||||||
|
|
||||||
|
|
||||||
def _call_inst_merge_laundering(db: Database, target_table: str):
|
def _call_inst_merge_laundering(db: Database):
|
||||||
# B:DCF施設統合マスタがある場合は、コードを変換し、住所等をSETする(テーブル更新)
|
# B:DCF施設統合マスタがある場合は、コードを変換し、住所等をSETする(プロシージャ―の呼び出し)
|
||||||
logger.info('inst_merge_laundering(プロシージャ―) 開始')
|
logger.info('inst_merge_laundering(プロシージャ―) 開始')
|
||||||
db.execute(f'CALL src05.inst_merge_laundering("{target_table}")')
|
db.execute(f"""
|
||||||
|
CALL src05.inst_merge_laundering(
|
||||||
|
'{environment.SALES_LAUNDERING_TARGET_TABLE_NAME}'
|
||||||
|
)
|
||||||
|
""")
|
||||||
logger.info('inst_merge_laundering(プロシージャ―) 終了')
|
logger.info('inst_merge_laundering(プロシージャ―) 終了')
|
||||||
return
|
return
|
||||||
|
|||||||
@ -22,3 +22,10 @@ DB_CONNECTION_MAX_RETRY_ATTEMPT = int(os.environ.get('DB_CONNECTION_MAX_RETRY_AT
|
|||||||
DB_CONNECTION_RETRY_INTERVAL_INIT = int(os.environ.get('DB_CONNECTION_RETRY_INTERVAL', 5))
|
DB_CONNECTION_RETRY_INTERVAL_INIT = int(os.environ.get('DB_CONNECTION_RETRY_INTERVAL', 5))
|
||||||
DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS = int(os.environ.get('DB_CONNECTION_RETRY_MIN_SECONDS', 5))
|
DB_CONNECTION_RETRY_INTERVAL_MIN_SECONDS = int(os.environ.get('DB_CONNECTION_RETRY_MIN_SECONDS', 5))
|
||||||
DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS = int(os.environ.get('DB_CONNECTION_RETRY_MAX_SECONDS', 50))
|
DB_CONNECTION_RETRY_INTERVAL_MAX_SECONDS = int(os.environ.get('DB_CONNECTION_RETRY_MAX_SECONDS', 50))
|
||||||
|
|
||||||
|
# 連携データ抽出期間
|
||||||
|
SALES_LAUNDERING_EXTRACT_DATE_PERIOD = int(os.environ['SALES_LAUNDERING_EXTRACT_DATE_PERIOD'])
|
||||||
|
# 洗替対象テーブル名
|
||||||
|
SALES_LAUNDERING_TARGET_TABLE_NAME = os.environ['SALES_LAUNDERING_TARGET_TABLE_NAME']
|
||||||
|
# 卸実績洗替で作成するデータの期間(年単位)
|
||||||
|
SALES_LAUNDERING_TARGET_YEAR_OFFSET = os.environ['SALES_LAUNDERING_TARGET_YEAR_OFFSET']
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
||||||
CREATE PROCEDURE src05.hco_to_mdb_laundering(@target_table VARCHAR(64))
|
CREATE PROCEDURE src05.hco_to_mdb_laundering(target_table VARCHAR(255))
|
||||||
SQL SECURITY INVOKER
|
SQL SECURITY INVOKER
|
||||||
BEGIN
|
BEGIN
|
||||||
-- スキーマ名
|
-- スキーマ名
|
||||||
@ -7,10 +7,10 @@ BEGIN
|
|||||||
-- プロシージャ名
|
-- プロシージャ名
|
||||||
DECLARE procedure_name VARCHAR(100) DEFAULT 'hco_to_mdb_laundering';
|
DECLARE procedure_name VARCHAR(100) DEFAULT 'hco_to_mdb_laundering';
|
||||||
-- プロシージャの引数
|
-- プロシージャの引数
|
||||||
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
||||||
|
|
||||||
-- 例外処理
|
-- 例外処理
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||||
BEGIN
|
BEGIN
|
||||||
GET DIAGNOSTICS CONDITION 1
|
GET DIAGNOSTICS CONDITION 1
|
||||||
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
||||||
@ -23,7 +23,7 @@ BEGIN
|
|||||||
SET @error_state = NULL, @error_msg = NULL;
|
SET @error_state = NULL, @error_msg = NULL;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'【洗替】4:メルク施設コードの洗替_A① 開始');
|
'【洗替】4:メルク施設コードの洗替_A① 開始');
|
||||||
|
|
||||||
TRUNCATE TABLE internal05.hco_cnv_mdb_t;
|
TRUNCATE TABLE internal05.hco_cnv_mdb_t;
|
||||||
|
|
||||||
@ -31,11 +31,11 @@ BEGIN
|
|||||||
'【洗替】4:メルク施設コードの洗替_A① 終了');
|
'【洗替】4:メルク施設コードの洗替_A① 終了');
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'【洗替】4:メルク施設コードの洗替_A② 開始');
|
'【洗替】4:メルク施設コードの洗替_A② 開始');
|
||||||
|
|
||||||
INSERT INTO
|
INSERT INTO
|
||||||
internal05.hco_cnv_mdb_t (
|
internal05.hco_cnv_mdb_t (
|
||||||
hco_vod_v,
|
hco_vid_v,
|
||||||
mdb_cd,
|
mdb_cd,
|
||||||
form_inst_name_kana,
|
form_inst_name_kana,
|
||||||
form_inst_name_kanji,
|
form_inst_name_kanji,
|
||||||
@ -78,19 +78,23 @@ BEGIN
|
|||||||
'【洗替】4:メルク施設コードの洗替_A② 終了');
|
'【洗替】4:メルク施設コードの洗替_A② 終了');
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'【洗替】4:メルク施設コードの洗替_A③ 開始');
|
'【洗替】4:メルク施設コードの洗替_A③ 開始');
|
||||||
|
|
||||||
UPDATE src05.@target_table AS tt, internal05.hco_cnv_mdb_t AS hcmt
|
SET @update_institution = "
|
||||||
SET
|
UPDATE $$target_table$$ AS tt, internal05.hco_cnv_mdb_t AS hcmt
|
||||||
tt.inst_cd = hcmt.mdb_cd,
|
SET
|
||||||
tt.inst_name_kana = hcmt.form_inst_name_kana,
|
tt.inst_cd = hcmt.mdb_cd,
|
||||||
tt.inst_name = hcmt.form_inst_name_kanji,
|
tt.inst_name_kana = hcmt.form_inst_name_kana,
|
||||||
tt.address = hcmt.inst_addr,
|
tt.inst_name = hcmt.form_inst_name_kanji,
|
||||||
tt.pref_cd = hcmt.prefc_cd
|
tt.address = hcmt.inst_addr,
|
||||||
WHERE
|
tt.pref_cd = hcmt.prefc_cd
|
||||||
tt.v_inst_cd = hcmt.hco_vid_v
|
WHERE
|
||||||
AND tt.inst_clas_cd = '1'
|
tt.v_inst_cd = hcmt.hco_vid_v
|
||||||
;
|
AND tt.inst_clas_cd = '1'
|
||||||
|
";
|
||||||
|
SET @update_institution = REPLACE(@update_institution, "$$target_table$$", target_table);
|
||||||
|
PREPARE update_institution_stmt from @update_institution;
|
||||||
|
EXECUTE update_institution_stmt;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'【洗替】4:メルク施設コードの洗替_A③ 終了');
|
'【洗替】4:メルク施設コードの洗替_A③ 終了');
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
||||||
CREATE PROCEDURE src05.inst_merge_laundering(@target_table VARCHAR(64))
|
CREATE PROCEDURE src05.inst_merge_laundering(target_table VARCHAR(255))
|
||||||
SQL SECURITY INVOKER
|
SQL SECURITY INVOKER
|
||||||
BEGIN
|
BEGIN
|
||||||
-- スキーマ名
|
-- スキーマ名
|
||||||
@ -7,10 +7,10 @@ BEGIN
|
|||||||
-- プロシージャ名
|
-- プロシージャ名
|
||||||
DECLARE procedure_name VARCHAR(100) DEFAULT 'inst_merge_laundering';
|
DECLARE procedure_name VARCHAR(100) DEFAULT 'inst_merge_laundering';
|
||||||
-- プロシージャの引数
|
-- プロシージャの引数
|
||||||
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
||||||
|
|
||||||
-- 例外処理
|
-- 例外処理
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||||
BEGIN
|
BEGIN
|
||||||
GET DIAGNOSTICS CONDITION 1
|
GET DIAGNOSTICS CONDITION 1
|
||||||
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
||||||
@ -25,28 +25,35 @@ BEGIN
|
|||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'【洗替】4:メルク施設コードの洗替_B① 開始');
|
'【洗替】4:メルク施設コードの洗替_B① 開始');
|
||||||
|
|
||||||
UPDATE (
|
SET @update_institution = "
|
||||||
SELECT
|
UPDATE (
|
||||||
dcf_dsf_inst_cd,
|
SELECT
|
||||||
dup_opp_cd,
|
dcf_dsf_inst_cd,
|
||||||
form_inst_name_kanji,
|
dup_opp_cd,
|
||||||
form_inst_name_kana,
|
form_inst_name_kanji,
|
||||||
inst_addr,
|
form_inst_name_kana,
|
||||||
prefc_cd
|
inst_addr,
|
||||||
FROM
|
prefc_cd
|
||||||
internal05.inst_merge_t
|
FROM
|
||||||
) AS imt,
|
internal05.inst_merge_t
|
||||||
src05.@target_table AS tt
|
) AS imt,
|
||||||
SET
|
$$target_table$$ AS tt
|
||||||
tt.inst_cd = imt.dup_opp_cd,
|
SET
|
||||||
tt.inst_name = imt.form_inst_name_kanji,
|
tt.inst_cd = imt.dup_opp_cd,
|
||||||
tt.inst_name_kana = imt.form_inst_name_kana,
|
tt.inst_name = imt.form_inst_name_kanji,
|
||||||
tt.address = imt.inst_addr,
|
tt.inst_name_kana = imt.form_inst_name_kana,
|
||||||
tt.prefc_cd = imt.prefc_cd
|
tt.address = imt.inst_addr,
|
||||||
WHERE
|
tt.pref_cd = imt.prefc_cd,
|
||||||
tt.inst_cd = imt.dcf_dsf_inst_cd
|
tt.dwh_upd_dt = SYSDATE()
|
||||||
;
|
WHERE
|
||||||
|
tt.inst_cd = imt.dcf_dsf_inst_cd
|
||||||
|
AND tt.inst_clas_cd = '1'
|
||||||
|
";
|
||||||
|
SET @update_institution = REPLACE(@update_institution, "$$target_table$$", target_table);
|
||||||
|
PREPARE update_institution_stmt from @update_institution;
|
||||||
|
EXECUTE update_institution_stmt;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'【洗替】4:メルク施設コードの洗替_B① 終了');
|
'【洗替】4:メルク施設コードの洗替_B① 終了');
|
||||||
|
|
||||||
|
END
|
||||||
@ -1,5 +1,5 @@
|
|||||||
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
||||||
CREATE PROCEDURE src05.sales_lau_delete(@target_table VARCHAR(64), @laundering_period_year INT)
|
CREATE PROCEDURE src05.sales_lau_delete(target_table VARCHAR(255), laundering_period_year INT)
|
||||||
SQL SECURITY INVOKER
|
SQL SECURITY INVOKER
|
||||||
BEGIN
|
BEGIN
|
||||||
-- スキーマ名
|
-- スキーマ名
|
||||||
@ -7,10 +7,10 @@ BEGIN
|
|||||||
-- プロシージャ名
|
-- プロシージャ名
|
||||||
DECLARE procedure_name VARCHAR(100) DEFAULT 'sales_lau_delete';
|
DECLARE procedure_name VARCHAR(100) DEFAULT 'sales_lau_delete';
|
||||||
-- プロシージャの引数
|
-- プロシージャの引数
|
||||||
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
||||||
|
|
||||||
-- 例外処理
|
-- 例外処理
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||||
BEGIN
|
BEGIN
|
||||||
GET DIAGNOSTICS CONDITION 1
|
GET DIAGNOSTICS CONDITION 1
|
||||||
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
||||||
@ -25,11 +25,15 @@ BEGIN
|
|||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)過去5年以前のデータ削除① 開始');
|
'卸販売実績テーブル(洗替後)過去5年以前のデータ削除① 開始');
|
||||||
|
|
||||||
DELETE FROM
|
SET @delete_data = "
|
||||||
src05.@target_table
|
DELETE FROM
|
||||||
WHERE
|
$$target_table$$
|
||||||
kjyo_ym < DATE_FORMAT((src05.get_syor_date() - INTERVAL @laundering_period_year YEAR), '%Y%m')
|
WHERE
|
||||||
;
|
kjyo_ym < DATE_FORMAT((src05.get_syor_date() - INTERVAL ? YEAR), '%Y%m')
|
||||||
|
";
|
||||||
|
SET @delete_data = REPLACE(@delete_data, "$$target_table$$", target_table);
|
||||||
|
PREPARE delete_data_stmt from @delete_data;
|
||||||
|
EXECUTE delete_data_stmt USING @laundering_period_year;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)過去5年以前のデータ削除① 終了');
|
'卸販売実績テーブル(洗替後)過去5年以前のデータ削除① 終了');
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
||||||
CREATE PROCEDURE src05.sales_lau_upsert(@target_table VARCHAR(64), @extract_from_date DATETIME,
|
CREATE PROCEDURE src05.sales_lau_upsert(target_table VARCHAR(255), extract_from_date date,
|
||||||
@extract_to_date DATETIME)
|
extract_to_date date)
|
||||||
SQL SECURITY INVOKER
|
SQL SECURITY INVOKER
|
||||||
BEGIN
|
BEGIN
|
||||||
-- スキーマ名
|
-- スキーマ名
|
||||||
@ -8,10 +8,10 @@ BEGIN
|
|||||||
-- プロシージャ名
|
-- プロシージャ名
|
||||||
DECLARE procedure_name VARCHAR(100) DEFAULT 'sales_lau_upsert';
|
DECLARE procedure_name VARCHAR(100) DEFAULT 'sales_lau_upsert';
|
||||||
-- プロシージャの引数
|
-- プロシージャの引数
|
||||||
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
||||||
|
|
||||||
-- 例外処理
|
-- 例外処理
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||||
BEGIN
|
BEGIN
|
||||||
GET DIAGNOSTICS CONDITION 1
|
GET DIAGNOSTICS CONDITION 1
|
||||||
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
||||||
@ -24,7 +24,7 @@ BEGIN
|
|||||||
SET @error_state = NULL, @error_msg = NULL;
|
SET @error_state = NULL, @error_msg = NULL;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)作成① 開始'
|
'卸販売実績テーブル(洗替後)作成① 開始'
|
||||||
);
|
);
|
||||||
|
|
||||||
TRUNCATE TABLE internal05.bu_prd_name_contrast_t;
|
TRUNCATE TABLE internal05.bu_prd_name_contrast_t;
|
||||||
@ -36,7 +36,7 @@ BEGIN
|
|||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)作成② 開始'
|
'卸販売実績テーブル(洗替後)作成② 開始'
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO
|
INSERT INTO
|
||||||
internal05.bu_prd_name_contrast_t (
|
internal05.bu_prd_name_contrast_t (
|
||||||
prd_cd,
|
prd_cd,
|
||||||
@ -46,15 +46,15 @@ BEGIN
|
|||||||
pp_end_date,
|
pp_end_date,
|
||||||
update_date,
|
update_date,
|
||||||
bp_start_date,
|
bp_start_date,
|
||||||
bp_end_date
|
bp_end_date
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
ppmv.prd_cd,
|
ppmv.prd_cd,
|
||||||
bpnc.bu_cd,
|
bpnc.bu_cd,
|
||||||
ppmv.phm_itm_cd,
|
ppmv.phm_itm_cd,
|
||||||
ppmv.start_date AS pp_start_date,
|
ppmv.start_date AS pp_start_date,
|
||||||
ppmv.end_date AS pp_end_date,
|
ppmv.end_date AS pp_end_date,
|
||||||
bpnc.update_date AS update_date
|
bpnc.update_date AS update_date,
|
||||||
bpnc.start_date AS bp_start_date,
|
bpnc.start_date AS bp_start_date,
|
||||||
bpnc.end_date AS bp_end_date
|
bpnc.end_date AS bp_end_date
|
||||||
FROM
|
FROM
|
||||||
@ -63,7 +63,7 @@ BEGIN
|
|||||||
ON ppmv.phm_itm_cd = bpnc.phm_itm_cd
|
ON ppmv.phm_itm_cd = bpnc.phm_itm_cd
|
||||||
WHERE
|
WHERE
|
||||||
ppmv.rec_sts_kbn != '9'
|
ppmv.rec_sts_kbn != '9'
|
||||||
;
|
;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)作成② 終了'
|
'卸販売実績テーブル(洗替後)作成② 終了'
|
||||||
@ -71,46 +71,47 @@ BEGIN
|
|||||||
|
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)作成③ 開始'
|
'卸販売実績テーブル(洗替後)作成③ 開始'
|
||||||
);
|
);
|
||||||
|
|
||||||
TRUNCATE TABLE internal05.fcl_mst_v_t;
|
TRUNCATE TABLE internal05.fcl_mst_v_t;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)作成③ 終了'
|
'卸販売実績テーブル(洗替後)作成③ 終了'
|
||||||
);
|
);
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)作成④ 開始'
|
'卸販売実績テーブル(洗替後)作成④ 開始'
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO
|
INSERT INTO
|
||||||
internal05.internal05.fcl_mst_v_t
|
internal05.fcl_mst_v_t
|
||||||
SELECT
|
SELECT
|
||||||
v_inst_cd,
|
fmv1.v_inst_cd,
|
||||||
sub_num,
|
fmv1.sub_num,
|
||||||
start_date,
|
fmv1.start_date,
|
||||||
end_date,
|
fmv1.end_date,
|
||||||
closed_dt,
|
fmv1.closed_dt,
|
||||||
fcl_name,
|
fmv1.fcl_name,
|
||||||
fcl_kn_name,
|
fmv1.fcl_kn_name,
|
||||||
fcl_abb_name,
|
fmv1.fcl_abb_name,
|
||||||
mkr_cd,
|
fmv1.fcl_abb_kn_name,
|
||||||
jsk_proc_kbn,
|
fmv1.mkr_cd,
|
||||||
fmt_addr,
|
fmv1.jsk_proc_kbn,
|
||||||
fmt_kn_addr,
|
fmv1.fmt_addr,
|
||||||
postal_cd,
|
fmv1.fmt_kn_addr,
|
||||||
prft_cd,
|
fmv1.postal_cd,
|
||||||
prft_name,
|
fmv1.prft_cd,
|
||||||
city_name,
|
fmv1.prft_name,
|
||||||
addr_line_1,
|
fmv1.city_name,
|
||||||
tel_num,
|
fmv1.addr_line_1,
|
||||||
admin_kbn,
|
fmv1.tel_num,
|
||||||
fcl_type,
|
fmv1.admin_kbn,
|
||||||
rec_sts_kbn,
|
fmv1.fcl_type,
|
||||||
ins_dt,
|
fmv1.rec_sts_kbn,
|
||||||
upd_dt,
|
fmv1.ins_dt,
|
||||||
dwh_upd_dt
|
fmv1.upd_dt,
|
||||||
|
fmv1.dwh_upd_dt
|
||||||
FROM
|
FROM
|
||||||
src05.fcl_mst_v AS fmv1
|
src05.fcl_mst_v AS fmv1
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
@ -129,334 +130,176 @@ BEGIN
|
|||||||
;
|
;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)作成④ 終了'
|
'卸販売実績テーブル(洗替後)作成④ 終了'
|
||||||
);
|
);
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)作成⑤ 開始'
|
'卸販売実績テーブル(洗替後)作成⑤ 開始'
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO
|
SET @insert_sales_laundering = "
|
||||||
src05.@target_table (
|
INSERT INTO
|
||||||
rec_whs_cd,
|
$$target_table$$ (
|
||||||
rec_whs_sub_cd,
|
rec_whs_cd,
|
||||||
rec_whs_org_cd,
|
rec_whs_sub_cd,
|
||||||
rec_cust_cd,
|
rec_whs_org_cd,
|
||||||
rec_comm_cd,
|
rec_cust_cd,
|
||||||
rec_tran_kbn,
|
rec_comm_cd,
|
||||||
rev_hsdnymd_wrk,
|
rec_tran_kbn,
|
||||||
rev_hsdnymd_srk,
|
rev_hsdnymd_wrk,
|
||||||
rec_urag_num,
|
rev_hsdnymd_srk,
|
||||||
rec_qty,
|
rec_urag_num,
|
||||||
rec_nonyu_price,
|
rec_qty,
|
||||||
rec_nonyu_amt,
|
rec_nonyu_price,
|
||||||
rec_comm_name,
|
rec_nonyu_amt,
|
||||||
rec_nonyu_fcl_name,
|
rec_comm_name,
|
||||||
free_item,
|
rec_nonyu_fcl_name,
|
||||||
rec_nonyu_fcl_addr,
|
free_item,
|
||||||
rec_nonyu_fcl_post,
|
rec_nonyu_fcl_addr,
|
||||||
rec_nonyu_fcl_tel,
|
rec_nonyu_fcl_post,
|
||||||
rec_bef_hsdn_ymd,
|
rec_nonyu_fcl_tel,
|
||||||
rec_bef_slip_num,
|
rec_bef_hsdn_ymd,
|
||||||
rec_ymd,
|
rec_bef_slip_num,
|
||||||
sale_data_cat,
|
rec_ymd,
|
||||||
slip_file_name,
|
sale_data_cat,
|
||||||
slip_mgt_num,
|
slip_file_name,
|
||||||
row_num,
|
slip_mgt_num,
|
||||||
hsdn_ymd,
|
row_num,
|
||||||
exec_dt,
|
hsdn_ymd,
|
||||||
v_tran_cd,
|
exec_dt,
|
||||||
tran_kbn_name,
|
v_tran_cd,
|
||||||
whs_org_cd,
|
tran_kbn_name,
|
||||||
v_whsorg_cd,
|
whs_org_cd,
|
||||||
whs_org_name,
|
v_whsorg_cd,
|
||||||
whs_org_kn,
|
whs_org_name,
|
||||||
v_whs_cd,
|
whs_org_kn,
|
||||||
whs_name,
|
v_whs_cd,
|
||||||
nonyu_fcl_cd,
|
whs_name,
|
||||||
inst_name,
|
nonyu_fcl_cd,
|
||||||
inst_name_kana,
|
inst_name,
|
||||||
address,
|
inst_name_kana,
|
||||||
comm_cd,
|
address,
|
||||||
comm_name,
|
comm_cd,
|
||||||
nonyu_qty,
|
comm_name,
|
||||||
nonyu_price,
|
nonyu_qty,
|
||||||
nonyu_amt,
|
nonyu_price,
|
||||||
shikiri_price,
|
nonyu_amt,
|
||||||
shikiri_amt,
|
shikiri_price,
|
||||||
nhi_price,
|
shikiri_amt,
|
||||||
nhi_amt,
|
nhi_price,
|
||||||
v_inst_cd,
|
nhi_amt,
|
||||||
inst_clas_cd,
|
v_inst_cd,
|
||||||
bu_cd,
|
inst_clas_cd,
|
||||||
item_cd,
|
bu_cd,
|
||||||
item_name,
|
item_cd,
|
||||||
item_english_name,
|
item_name,
|
||||||
pref_cd,
|
item_english_name,
|
||||||
whspos_err_kbn,
|
pref_cd,
|
||||||
htdnymd_err_kbn,
|
whspos_err_kbn,
|
||||||
prd_exis_kbn,
|
htdnymd_err_kbn,
|
||||||
fcl_exis_kbn,
|
prd_exis_kbn,
|
||||||
bef_hsdn_ymd,
|
fcl_exis_kbn,
|
||||||
bef_slip_num,
|
bef_hsdn_ymd,
|
||||||
slip_org_kbn,
|
bef_slip_num,
|
||||||
kjyo_ym,
|
slip_org_kbn,
|
||||||
tksnbk_kbn,
|
kjyo_ym,
|
||||||
fcl_exec_kbn,
|
tksnbk_kbn,
|
||||||
rec_sts_kbn,
|
fcl_exec_kbn,
|
||||||
ins_dt,
|
rec_sts_kbn,
|
||||||
ins_usr,
|
ins_dt,
|
||||||
dwh_upd_dt
|
ins_usr,
|
||||||
)
|
dwh_upd_dt
|
||||||
SELECT
|
)
|
||||||
s.rec_whs_cd,
|
|
||||||
s.rec_whs_sub_cd,
|
|
||||||
s.rec_whs_org_cd,
|
|
||||||
s.rec_cust_cd,
|
|
||||||
s.rec_comm_cd,
|
|
||||||
s.rec_tran_kbn,
|
|
||||||
s.rev_hsdnymd_wrk,
|
|
||||||
s.rev_hsdnymd_srk,
|
|
||||||
s.rec_urag_num,
|
|
||||||
s.rec_qty,
|
|
||||||
s.rec_nonyu_price,
|
|
||||||
s.rec_nonyu_amt,
|
|
||||||
s.rec_comm_name,
|
|
||||||
s.rec_nonyu_fcl_name,
|
|
||||||
s.free_item,
|
|
||||||
s.rec_nonyu_fcl_addr,
|
|
||||||
s.rec_nonyu_fcl_post,
|
|
||||||
s.rec_nonyu_fcl_tel,
|
|
||||||
s.rec_bef_hsdn_ymd,
|
|
||||||
s.rec_bef_slip_num,
|
|
||||||
s.rec_ymd,
|
|
||||||
s.sale_data_cat,
|
|
||||||
s.slip_file_name,
|
|
||||||
s.slip_mgt_num,
|
|
||||||
s.row_num,
|
|
||||||
s.hsdn_ymd,
|
|
||||||
s.exec_dt,
|
|
||||||
s.v_tran_cd,
|
|
||||||
s.tran_kbn_name,
|
|
||||||
s.whs_org_cd,
|
|
||||||
s.v_whsorg_cd,
|
|
||||||
s.whs_org_name,
|
|
||||||
s.whs_org_kn,
|
|
||||||
s.v_whs_cd,
|
|
||||||
s.whs_name,
|
|
||||||
s.nonyu_fcl_cd,
|
|
||||||
s.v_inst_name,
|
|
||||||
s.v_inst_kn,
|
|
||||||
s.v_inst_addr,
|
|
||||||
s.comm_cd,
|
|
||||||
s.comm_name,
|
|
||||||
CASE
|
|
||||||
WHEN
|
|
||||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
|
||||||
THEN
|
|
||||||
(s.nonyu_qty * -1)
|
|
||||||
ELSE
|
|
||||||
s.nonyu_qty
|
|
||||||
END AS nonyu_qty,
|
|
||||||
s.nonyu_price,
|
|
||||||
CASE
|
|
||||||
WHEN
|
|
||||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
|
||||||
THEN
|
|
||||||
(s.nonyu_amt * -1)
|
|
||||||
ELSE
|
|
||||||
s.nonyu_amt
|
|
||||||
END AS nonyu_amt,
|
|
||||||
s.shikiri_price,
|
|
||||||
CASE
|
|
||||||
WHEN
|
|
||||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
|
||||||
THEN
|
|
||||||
(s.shikiri_amt * -1)
|
|
||||||
ELSE
|
|
||||||
s.shikiri_amt
|
|
||||||
END AS shikiri_amt,
|
|
||||||
s.nhi_price,
|
|
||||||
CASE
|
|
||||||
WHEN
|
|
||||||
(LEFT(s.v_tran_cd,1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
|
||||||
THEN
|
|
||||||
(s.nhi_amt * -1)
|
|
||||||
ELSE
|
|
||||||
s.nhi_amt
|
|
||||||
END AS nhi_amt,
|
|
||||||
s.v_inst_cd,
|
|
||||||
CASE
|
|
||||||
WHEN
|
|
||||||
(fmvt.fcl_type = 'A1' or fmvt.fcl_type = 'A0') THEN '3'
|
|
||||||
WHEN
|
|
||||||
fmvt.fcl_type BETWEEN '20' AND '29' THEN '2'
|
|
||||||
ELSE
|
|
||||||
'1'
|
|
||||||
END AS inst_clas_cd,
|
|
||||||
bpnct.bu_cd,
|
|
||||||
ppmv.mkr_cd,
|
|
||||||
ppmv.mkr_inf_1,
|
|
||||||
ppmv.mkr_inf_2,
|
|
||||||
CASE
|
|
||||||
WHEN
|
|
||||||
s.v_inst_cd LIKE '00%'
|
|
||||||
THEN
|
|
||||||
ci.prefc_cd
|
|
||||||
ELSE
|
|
||||||
fmvt.prft_cd
|
|
||||||
END AS prft_cd,
|
|
||||||
s.whspos_err_kbn,
|
|
||||||
s.htdnymd_err_kbn,
|
|
||||||
s.prd_exis_kbn,
|
|
||||||
s.fcl_exis_kbn,
|
|
||||||
s.bef_hsdn_ymd,
|
|
||||||
s.bef_slip_num,
|
|
||||||
s.slip_org_kbn,
|
|
||||||
s.kjyo_ym,
|
|
||||||
s.tksnbk_kbn,
|
|
||||||
s.fcl_exec_kbn,
|
|
||||||
s.rec_sts_kbn,
|
|
||||||
s.ins_dt,
|
|
||||||
s.ins_usr,
|
|
||||||
SYSDATE()
|
|
||||||
FROM (
|
|
||||||
SELECT
|
SELECT
|
||||||
CAST(SYSDATE() AS DATE) AS today
|
s.rec_whs_cd,
|
||||||
) AS sub
|
s.rec_whs_sub_cd,
|
||||||
INNER JOIN src05.sales AS s
|
s.rec_whs_org_cd,
|
||||||
ON sub.today = CAST(s.dwh_upd_dt AS DATE)
|
s.rec_cust_cd,
|
||||||
LEFT OUTER JOIN src05.phm_prd_mst_v AS ppmv
|
s.rec_comm_cd,
|
||||||
ON s.comm_cd = ppmv.prd_cd
|
s.rec_tran_kbn,
|
||||||
AND STR_TO_DATE(s.hsdn_ymd,'%Y%m%d') BETWEEN ppmv.start_date AND ppmv.end_date
|
s.rev_hsdnymd_wrk,
|
||||||
AND ppmv.rec_sts_kbn != '9'
|
s.rev_hsdnymd_srk,
|
||||||
LEFT OUTER JOIN src05.fcl_mst_v_t AS fmvt
|
s.rec_urag_num,
|
||||||
ON s.v_inst_cd = fmvt.v_inst_cd
|
s.rec_qty,
|
||||||
LEFT OUTER JOIN src05.bu_prd_name_contrast_t AS bpnct
|
s.rec_nonyu_price,
|
||||||
ON s.comm_cd = bpnct.prd_cd
|
s.rec_nonyu_amt,
|
||||||
AND STR_TO_DATE(s.hsdn_ymd, '%Y%m%d') BETWEEN bpnct.pp_start_date AND bpnct.pp_end_date
|
s.rec_comm_name,
|
||||||
AND STR_TO_DATE(s.hsdn_ymd, '%Y%m%d') BETWEEN bpnct.bp_start_date AND bpnct.bp_end_date
|
s.rec_nonyu_fcl_name,
|
||||||
LEFT OUTER JOIN src05.com_inst AS ci
|
s.free_item,
|
||||||
ON s.v_inst_cd = ci.dcf_dsf_inst_cd
|
s.rec_nonyu_fcl_addr,
|
||||||
WHERE
|
s.rec_nonyu_fcl_post,
|
||||||
(s.rec_sts_kbn = '0' AND s.err_flg20 = 'M')
|
s.rec_nonyu_fcl_tel,
|
||||||
OR (
|
s.rec_bef_hsdn_ymd,
|
||||||
s.rec_sts_kbn = '0'
|
s.rec_bef_slip_num,
|
||||||
AND s.err_flg20 != 'M'
|
s.rec_ymd,
|
||||||
AND s.v_tran_cd IN (110, 120, 210, 220)
|
s.sale_data_cat,
|
||||||
AND (
|
s.slip_file_name,
|
||||||
(
|
s.slip_mgt_num,
|
||||||
s.fcl_exec_kbn NOT IN ('2', '5')
|
s.row_num,
|
||||||
AND (s.fcl_exec_kbn != '6' OR ppmv.prd_sale_kbn <> 1)
|
s.hsdn_ymd,
|
||||||
)
|
s.exec_dt,
|
||||||
OR s.fcl_exec_kbn IS NULL
|
s.v_tran_cd,
|
||||||
)
|
s.tran_kbn_name,
|
||||||
)
|
s.whs_org_cd,
|
||||||
|
s.v_whsorg_cd,
|
||||||
ON DUPLICATE KEY UPDATE
|
s.whs_org_name,
|
||||||
rec_whs_cd = s.rec_whs_cd,
|
s.whs_org_kn,
|
||||||
rec_whs_sub_cd = s.rec_whs_sub_cd,
|
s.v_whs_cd,
|
||||||
rec_whs_org_cd = s.rec_whs_org_cd,
|
s.whs_name,
|
||||||
rec_cust_cd = s.rec_cust_cd,
|
s.nonyu_fcl_cd,
|
||||||
rec_comm_cd = s.rec_comm_cd,
|
s.v_inst_name,
|
||||||
rec_tran_kbn = s.rec_tran_kbn,
|
s.v_inst_kn,
|
||||||
rev_hsdnymd_wrk = s.rev_hsdnymd_wrk,
|
s.v_inst_addr,
|
||||||
rev_hsdnymd_srk = s.rev_hsdnymd_srk,
|
s.comm_cd,
|
||||||
rec_urag_num = s.rec_urag_num,
|
s.comm_name,
|
||||||
rec_qty = s.rec_qty,
|
CASE
|
||||||
rec_nonyu_price = s.rec_nonyu_price,
|
WHEN
|
||||||
rec_nonyu_amt = s.rec_nonyu_amt,
|
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||||
rec_comm_name = s.rec_comm_name,
|
THEN
|
||||||
rec_nonyu_fcl_name = s.rec_nonyu_fcl_name,
|
(s.nonyu_qty * -1)
|
||||||
free_item = s.free_item,
|
ELSE
|
||||||
rec_nonyu_fcl_addr = s.rec_nonyu_fcl_addr,
|
s.nonyu_qty
|
||||||
rec_nonyu_fcl_post = s.rec_nonyu_fcl_post,
|
END AS nonyu_qty,
|
||||||
rec_nonyu_fcl_tel = s.rec_nonyu_fcl_tel,
|
s.nonyu_price,
|
||||||
rec_bef_hsdn_ymd = s.rec_bef_hsdn_ymd,
|
CASE
|
||||||
rec_bef_slip_num = s.rec_bef_slip_num,
|
WHEN
|
||||||
rec_ymd = s.rec_ymd,
|
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||||
sale_data_cat = s.sale_data_cat,
|
THEN
|
||||||
slip_file_name = s.slip_file_name,
|
(s.nonyu_amt * -1)
|
||||||
row_num = s.row_num,
|
ELSE
|
||||||
hsdn_ymd = s.hsdn_ymd,
|
s.nonyu_amt
|
||||||
exec_dt = s.exec_dt,
|
END AS nonyu_amt,
|
||||||
v_tran_cd = s.v_tran_cd,
|
s.shikiri_price,
|
||||||
tran_kbn_name = s.tran_kbn_name,
|
CASE
|
||||||
whs_org_cd = s.whs_org_cd,
|
WHEN
|
||||||
v_whsorg_cd = s.v_whsorg_cd,
|
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||||
whs_org_name = s.whs_org_name,
|
THEN
|
||||||
whs_org_kn = s.whs_org_kn,
|
(s.shikiri_amt * -1)
|
||||||
v_whs_cd = s.v_whs_cd,
|
ELSE
|
||||||
whs_name = s.whs_name,
|
s.shikiri_amt
|
||||||
nonyu_fcl_cd = s.nonyu_fcl_cd,
|
END AS shikiri_amt,
|
||||||
inst_name = s.v_inst_name,
|
s.nhi_price,
|
||||||
inst_name_kana = s.v_inst_kn,
|
CASE
|
||||||
address = s.v_inst_addr,
|
WHEN
|
||||||
comm_cd = s.comm_cd,
|
(LEFT(s.v_tran_cd,1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||||
comm_name = s.comm_name,
|
THEN
|
||||||
nonyu_qty = (
|
(s.nhi_amt * -1)
|
||||||
CASE
|
ELSE
|
||||||
WHEN
|
s.nhi_amt
|
||||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
END AS nhi_amt,
|
||||||
THEN
|
s.v_inst_cd,
|
||||||
(s.nonyu_qty * -1)
|
CASE
|
||||||
ELSE
|
WHEN
|
||||||
s.nonyu_qty
|
(fmvt.fcl_type = 'A1' or fmvt.fcl_type = 'A0') THEN '3'
|
||||||
END
|
WHEN
|
||||||
),
|
fmvt.fcl_type BETWEEN '20' AND '29' THEN '2'
|
||||||
nonyu_price = s.nonyu_price,
|
ELSE
|
||||||
nonyu_amt = (
|
'1'
|
||||||
CASE
|
END AS inst_clas_cd,
|
||||||
WHEN
|
bpnct.bu_cd,
|
||||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
ppmv.mkr_cd,
|
||||||
THEN
|
ppmv.mkr_inf_1,
|
||||||
(s.nonyu_amt * -1)
|
ppmv.mkr_inf_2,
|
||||||
ELSE
|
|
||||||
s.nonyu_amt
|
|
||||||
END
|
|
||||||
),
|
|
||||||
shikiri_price = s.shikiri_price,
|
|
||||||
shikiri_amt = (
|
|
||||||
CASE
|
|
||||||
WHEN
|
|
||||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
|
||||||
THEN
|
|
||||||
(s.shikiri_amt * -1)
|
|
||||||
ELSE
|
|
||||||
s.shikiri_amt
|
|
||||||
END
|
|
||||||
),
|
|
||||||
nhi_price = s.nhi_price,
|
|
||||||
nhi_amt = (
|
|
||||||
CASE
|
|
||||||
WHEN
|
|
||||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
|
||||||
THEN
|
|
||||||
(s.nhi_amt * -1)
|
|
||||||
ELSE
|
|
||||||
s.nhi_amt
|
|
||||||
END
|
|
||||||
),
|
|
||||||
v_inst_cd = s.v_inst_cd,
|
|
||||||
inst_clas_cd = (
|
|
||||||
CASE
|
|
||||||
WHEN
|
|
||||||
(fmvt.fcl_type = 'A1' OR fmvt.fcl_type = 'A0')
|
|
||||||
THEN
|
|
||||||
'3'
|
|
||||||
WHEN
|
|
||||||
fmvt.fcl_type BETWEEN '20' AND '29'
|
|
||||||
THEN
|
|
||||||
'2'
|
|
||||||
ELSE
|
|
||||||
'1'
|
|
||||||
END
|
|
||||||
),
|
|
||||||
bu_cd = bpnct.bu_cd,
|
|
||||||
item_cd = ppmv.mkr_cd,
|
|
||||||
item_name = ppmv.mkr_inf_1,
|
|
||||||
item_english_name = ppmv.mkr_inf_2,
|
|
||||||
pref_cd = (
|
|
||||||
CASE
|
CASE
|
||||||
WHEN
|
WHEN
|
||||||
s.v_inst_cd LIKE '00%'
|
s.v_inst_cd LIKE '00%'
|
||||||
@ -464,105 +307,224 @@ BEGIN
|
|||||||
ci.prefc_cd
|
ci.prefc_cd
|
||||||
ELSE
|
ELSE
|
||||||
fmvt.prft_cd
|
fmvt.prft_cd
|
||||||
END
|
END AS prft_cd,
|
||||||
),
|
s.whspos_err_kbn,
|
||||||
whspos_err_kbn = s.whspos_err_kbn,
|
s.htdnymd_err_kbn,
|
||||||
htdnymd_err_kbn = s.htdnymd_err_kbn,
|
s.prd_exis_kbn,
|
||||||
prd_exis_kbn = s.prd_exis_kbn,
|
s.fcl_exis_kbn,
|
||||||
fcl_exis_kbn = s.fcl_exis_kbn,
|
s.bef_hsdn_ymd,
|
||||||
bef_hsdn_ymd = s.bef_hsdn_ymd,
|
s.bef_slip_num,
|
||||||
bef_slip_num = s.bef_slip_num,
|
s.slip_org_kbn,
|
||||||
slip_org_kbn = s.slip_org_kbn,
|
s.kjyo_ym,
|
||||||
kjyo_ym = s.kjyo_ym,
|
s.tksnbk_kbn,
|
||||||
tksnbk_kbn = s.tksnbk_kbn,
|
s.fcl_exec_kbn,
|
||||||
fcl_exec_kbn = s.fcl_exec_kbn,
|
s.rec_sts_kbn,
|
||||||
rec_sts_kbn = s.rec_sts_kbn,
|
s.ins_dt,
|
||||||
ins_dt = s.ins_dt,
|
s.ins_usr,
|
||||||
ins_usr = s.ins_usr,
|
SYSDATE()
|
||||||
dwh_upd_dt = SYSDATE()
|
FROM (
|
||||||
;
|
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
|
||||||
'卸販売実績テーブル(洗替後)作成⑤ 終了'
|
|
||||||
);
|
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
|
||||||
'卸販売実績テーブル(洗替後)作成⑥ 開始'
|
|
||||||
);
|
|
||||||
|
|
||||||
UPDATE (
|
|
||||||
SELECT
|
SELECT
|
||||||
fmvt.v_inst_cd AS v_inst_cd,
|
CAST(SYSDATE() AS DATE) AS today
|
||||||
fmvt.fcl_type AS fcl_type,
|
) AS sub
|
||||||
fmvt.prft_cd AS prft_cd,
|
INNER JOIN src05.sales AS s
|
||||||
ci.prefc_cd AS prefc_cd
|
ON sub.today = CAST(s.dwh_upd_dt AS DATE)
|
||||||
FROM
|
LEFT OUTER JOIN src05.phm_prd_mst_v AS ppmv
|
||||||
(SELECT CAST(SYSDATE() AS DATE) AS today) AS sub
|
ON s.comm_cd = ppmv.prd_cd
|
||||||
INNER JOIN src05.fcl_mst_v_t AS fmvt
|
AND STR_TO_DATE(s.hsdn_ymd,'%Y%m%d') BETWEEN ppmv.start_date AND ppmv.end_date
|
||||||
ON sub.today = CAST(fmvt.dwh_upd_dt AS DATE)
|
AND ppmv.rec_sts_kbn != '9'
|
||||||
LEFT OUTER JOIN src05.com_inst AS ci
|
LEFT OUTER JOIN internal05.fcl_mst_v_t AS fmvt
|
||||||
ON fmvt.v_inst_cd = ci.dcf_dsf_inst_cd
|
ON s.v_inst_cd = fmvt.v_inst_cd
|
||||||
) AS t3t5,
|
LEFT OUTER JOIN internal05.bu_prd_name_contrast_t AS bpnct
|
||||||
src05.sales_lau AS sl
|
ON s.comm_cd = bpnct.prd_cd
|
||||||
SET
|
AND STR_TO_DATE(s.hsdn_ymd, '%Y%m%d') BETWEEN bpnct.pp_start_date AND bpnct.pp_end_date
|
||||||
sl.inst_clas_cd = (
|
AND STR_TO_DATE(s.hsdn_ymd, '%Y%m%d') BETWEEN bpnct.bp_start_date AND bpnct.bp_end_date
|
||||||
CASE
|
LEFT OUTER JOIN src05.com_inst AS ci
|
||||||
WHEN
|
ON s.v_inst_cd = ci.dcf_dsf_inst_cd
|
||||||
(t3t5.fcl_type = 'A1' OR t3t5.fcl_type = 'A0')
|
WHERE
|
||||||
THEN
|
(? <= s.dwh_upd_dt AND s.dwh_upd_dt <= ?)
|
||||||
'3'
|
AND (
|
||||||
WHEN
|
(s.rec_sts_kbn = '0' AND s.err_flg20 = 'M')
|
||||||
t3t5.fcl_type BETWEEN '20' AND '29'
|
OR (
|
||||||
THEN
|
s.rec_sts_kbn = '0'
|
||||||
'2'
|
AND s.err_flg20 != 'M'
|
||||||
ELSE
|
AND s.v_tran_cd IN (110, 120, 210, 220)
|
||||||
'1'
|
AND (
|
||||||
END
|
(
|
||||||
),
|
s.fcl_exec_kbn NOT IN ('2', '5')
|
||||||
sl.pref_cd = (
|
AND (s.fcl_exec_kbn != '6' OR ppmv.prd_sale_kbn <> 1)
|
||||||
CASE
|
)
|
||||||
WHEN
|
OR s.fcl_exec_kbn IS NULL
|
||||||
sl.v_inst_cd LIKE '00%'
|
)
|
||||||
THEN
|
)
|
||||||
t3t5.prefc_cd
|
)
|
||||||
ELSE
|
|
||||||
t3t5.prft_cd
|
ON DUPLICATE KEY UPDATE
|
||||||
END
|
rec_whs_cd = s.rec_whs_cd,
|
||||||
)
|
rec_whs_sub_cd = s.rec_whs_sub_cd,
|
||||||
WHERE sl.v_inst_cd = t3t5.v_inst_cd
|
rec_whs_org_cd = s.rec_whs_org_cd,
|
||||||
;
|
rec_cust_cd = s.rec_cust_cd,
|
||||||
|
rec_comm_cd = s.rec_comm_cd,
|
||||||
|
rec_tran_kbn = s.rec_tran_kbn,
|
||||||
|
rev_hsdnymd_wrk = s.rev_hsdnymd_wrk,
|
||||||
|
rev_hsdnymd_srk = s.rev_hsdnymd_srk,
|
||||||
|
rec_urag_num = s.rec_urag_num,
|
||||||
|
rec_qty = s.rec_qty,
|
||||||
|
rec_nonyu_price = s.rec_nonyu_price,
|
||||||
|
rec_nonyu_amt = s.rec_nonyu_amt,
|
||||||
|
rec_comm_name = s.rec_comm_name,
|
||||||
|
rec_nonyu_fcl_name = s.rec_nonyu_fcl_name,
|
||||||
|
free_item = s.free_item,
|
||||||
|
rec_nonyu_fcl_addr = s.rec_nonyu_fcl_addr,
|
||||||
|
rec_nonyu_fcl_post = s.rec_nonyu_fcl_post,
|
||||||
|
rec_nonyu_fcl_tel = s.rec_nonyu_fcl_tel,
|
||||||
|
rec_bef_hsdn_ymd = s.rec_bef_hsdn_ymd,
|
||||||
|
rec_bef_slip_num = s.rec_bef_slip_num,
|
||||||
|
rec_ymd = s.rec_ymd,
|
||||||
|
sale_data_cat = s.sale_data_cat,
|
||||||
|
slip_file_name = s.slip_file_name,
|
||||||
|
row_num = s.row_num,
|
||||||
|
hsdn_ymd = s.hsdn_ymd,
|
||||||
|
exec_dt = s.exec_dt,
|
||||||
|
v_tran_cd = s.v_tran_cd,
|
||||||
|
tran_kbn_name = s.tran_kbn_name,
|
||||||
|
whs_org_cd = s.whs_org_cd,
|
||||||
|
v_whsorg_cd = s.v_whsorg_cd,
|
||||||
|
whs_org_name = s.whs_org_name,
|
||||||
|
whs_org_kn = s.whs_org_kn,
|
||||||
|
v_whs_cd = s.v_whs_cd,
|
||||||
|
whs_name = s.whs_name,
|
||||||
|
nonyu_fcl_cd = s.nonyu_fcl_cd,
|
||||||
|
inst_name = s.v_inst_name,
|
||||||
|
inst_name_kana = s.v_inst_kn,
|
||||||
|
address = s.v_inst_addr,
|
||||||
|
comm_cd = s.comm_cd,
|
||||||
|
comm_name = s.comm_name,
|
||||||
|
nonyu_qty = (
|
||||||
|
CASE
|
||||||
|
WHEN
|
||||||
|
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||||
|
THEN
|
||||||
|
(s.nonyu_qty * -1)
|
||||||
|
ELSE
|
||||||
|
s.nonyu_qty
|
||||||
|
END
|
||||||
|
),
|
||||||
|
nonyu_price = s.nonyu_price,
|
||||||
|
nonyu_amt = (
|
||||||
|
CASE
|
||||||
|
WHEN
|
||||||
|
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||||
|
THEN
|
||||||
|
(s.nonyu_amt * -1)
|
||||||
|
ELSE
|
||||||
|
s.nonyu_amt
|
||||||
|
END
|
||||||
|
),
|
||||||
|
shikiri_price = s.shikiri_price,
|
||||||
|
shikiri_amt = (
|
||||||
|
CASE
|
||||||
|
WHEN
|
||||||
|
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||||
|
THEN
|
||||||
|
(s.shikiri_amt * -1)
|
||||||
|
ELSE
|
||||||
|
s.shikiri_amt
|
||||||
|
END
|
||||||
|
),
|
||||||
|
nhi_price = s.nhi_price,
|
||||||
|
nhi_amt = (
|
||||||
|
CASE
|
||||||
|
WHEN
|
||||||
|
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||||
|
THEN
|
||||||
|
(s.nhi_amt * -1)
|
||||||
|
ELSE
|
||||||
|
s.nhi_amt
|
||||||
|
END
|
||||||
|
),
|
||||||
|
v_inst_cd = s.v_inst_cd,
|
||||||
|
inst_clas_cd = (
|
||||||
|
CASE
|
||||||
|
WHEN
|
||||||
|
(fmvt.fcl_type = 'A1' OR fmvt.fcl_type = 'A0')
|
||||||
|
THEN
|
||||||
|
'3'
|
||||||
|
WHEN
|
||||||
|
fmvt.fcl_type BETWEEN '20' AND '29'
|
||||||
|
THEN
|
||||||
|
'2'
|
||||||
|
ELSE
|
||||||
|
'1'
|
||||||
|
END
|
||||||
|
),
|
||||||
|
bu_cd = bpnct.bu_cd,
|
||||||
|
item_cd = ppmv.mkr_cd,
|
||||||
|
item_name = ppmv.mkr_inf_1,
|
||||||
|
item_english_name = ppmv.mkr_inf_2,
|
||||||
|
pref_cd = (
|
||||||
|
CASE
|
||||||
|
WHEN
|
||||||
|
s.v_inst_cd LIKE '00%'
|
||||||
|
THEN
|
||||||
|
ci.prefc_cd
|
||||||
|
ELSE
|
||||||
|
fmvt.prft_cd
|
||||||
|
END
|
||||||
|
),
|
||||||
|
whspos_err_kbn = s.whspos_err_kbn,
|
||||||
|
htdnymd_err_kbn = s.htdnymd_err_kbn,
|
||||||
|
prd_exis_kbn = s.prd_exis_kbn,
|
||||||
|
fcl_exis_kbn = s.fcl_exis_kbn,
|
||||||
|
bef_hsdn_ymd = s.bef_hsdn_ymd,
|
||||||
|
bef_slip_num = s.bef_slip_num,
|
||||||
|
slip_org_kbn = s.slip_org_kbn,
|
||||||
|
kjyo_ym = s.kjyo_ym,
|
||||||
|
tksnbk_kbn = s.tksnbk_kbn,
|
||||||
|
fcl_exec_kbn = s.fcl_exec_kbn,
|
||||||
|
rec_sts_kbn = s.rec_sts_kbn,
|
||||||
|
ins_dt = s.ins_dt,
|
||||||
|
ins_usr = s.ins_usr,
|
||||||
|
dwh_upd_dt = SYSDATE()
|
||||||
|
";
|
||||||
|
SET @insert_sales_laundering = REPLACE(@insert_sales_laundering, "$$target_table$$", target_table);
|
||||||
|
PREPARE insert_sales_laundering_stmt from @insert_sales_laundering;
|
||||||
|
EXECUTE insert_sales_laundering_stmt USING @extract_from_date, @extract_to_date;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)作成⑥ 終了'
|
'卸販売実績テーブル(洗替後)作成⑤ 終了'
|
||||||
);
|
);
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)作成⑦ 開始'
|
'卸販売実績テーブル(洗替後)作成⑥ 開始'
|
||||||
);
|
);
|
||||||
|
|
||||||
UPDATE
|
SET @update_institution_code = "
|
||||||
( SELECT CAST(SYSDATE() AS DATE) AS today ) AS sub,
|
UPDATE
|
||||||
src05.sales_lau AS sl,
|
( SELECT CAST(SYSDATE() AS DATE) AS today ) AS sub,
|
||||||
src05.sales AS s
|
$$target_table$$ AS tt,
|
||||||
SET
|
src05.sales AS s
|
||||||
sl.inst_cd = (
|
SET
|
||||||
CASE
|
tt.inst_cd = (
|
||||||
WHEN
|
CASE
|
||||||
(s.err_flg20 != 'M' AND sl.inst_clas_cd IN ('2', '3')) OR (s.err_flg20 = 'M')
|
WHEN
|
||||||
THEN
|
(s.err_flg20 != 'M' AND tt.inst_clas_cd IN ('2', '3')) OR (s.err_flg20 = 'M')
|
||||||
s.v_inst_cd
|
THEN
|
||||||
ELSE
|
s.v_inst_cd
|
||||||
NULL
|
ELSE
|
||||||
END
|
NULL
|
||||||
)
|
END
|
||||||
WHERE
|
)
|
||||||
sub.today = CAST(s.dwh_upd_dt AS DATE)
|
WHERE
|
||||||
AND sl.slip_mgt_num = s.slip_mgt_num
|
sub.today = CAST(s.dwh_upd_dt AS DATE)
|
||||||
AND sl.row_num = s.row_num
|
AND tt.slip_mgt_num = s.slip_mgt_num
|
||||||
;
|
AND tt.row_num = s.row_num
|
||||||
|
";
|
||||||
|
SET @update_institution_code = REPLACE(@update_institution_code, "$$target_table$$", target_table);
|
||||||
|
PREPARE update_institution_code_stmt from @update_institution_code;
|
||||||
|
EXECUTE update_institution_code_stmt;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'卸販売実績テーブル(洗替後)作成⑦ 終了'
|
'卸販売実績テーブル(洗替後)作成⑥ 終了'
|
||||||
);
|
);
|
||||||
|
|
||||||
END
|
END
|
||||||
@ -1,5 +1,5 @@
|
|||||||
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
||||||
CREATE PROCEDURE src05.v_inst_merge_laundering(@target_table VARCHAR(64))
|
CREATE PROCEDURE src05.v_inst_merge_laundering(target_table VARCHAR(255))
|
||||||
SQL SECURITY INVOKER
|
SQL SECURITY INVOKER
|
||||||
BEGIN
|
BEGIN
|
||||||
-- スキーマ名
|
-- スキーマ名
|
||||||
@ -7,10 +7,10 @@ BEGIN
|
|||||||
-- プロシージャ名
|
-- プロシージャ名
|
||||||
DECLARE procedure_name VARCHAR(100) DEFAULT 'v_inst_merge_laundering';
|
DECLARE procedure_name VARCHAR(100) DEFAULT 'v_inst_merge_laundering';
|
||||||
-- プロシージャの引数
|
-- プロシージャの引数
|
||||||
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
||||||
|
|
||||||
-- 例外処理
|
-- 例外処理
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||||
BEGIN
|
BEGIN
|
||||||
GET DIAGNOSTICS CONDITION 1
|
GET DIAGNOSTICS CONDITION 1
|
||||||
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
||||||
@ -23,46 +23,50 @@ BEGIN
|
|||||||
SET @error_state = NULL, @error_msg = NULL;
|
SET @error_state = NULL, @error_msg = NULL;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'【洗替】3:HCO施設コードの洗替① 開始'
|
'【洗替】3:HCO施設コードの洗替① 開始'
|
||||||
);
|
);
|
||||||
|
|
||||||
UPDATE (
|
SET @update_institution = "
|
||||||
SELECT
|
UPDATE (
|
||||||
v_inst_cd,
|
SELECT
|
||||||
v_inst_cd_merge,
|
v_inst_cd,
|
||||||
fcl_name,
|
v_inst_cd_merge,
|
||||||
fcl_kn_name,
|
fcl_name,
|
||||||
fmt_addr,
|
fcl_kn_name,
|
||||||
prft_cd
|
fmt_addr,
|
||||||
FROM
|
prft_cd
|
||||||
internal05.v_inst_merge_t
|
FROM
|
||||||
WHERE
|
internal05.v_inst_merge_t
|
||||||
(fcl_type IN ('A1', 'A0')) OR fcl_type BETWEEN '20' AND '29'
|
WHERE
|
||||||
) AS vimt,
|
(fcl_type IN ('A1', 'A0')) OR fcl_type BETWEEN '20' AND '29'
|
||||||
src05.@target_table AS tt
|
) AS vimt,
|
||||||
SET
|
$$target_table$$ AS tt
|
||||||
tt.inst_cd = (
|
SET
|
||||||
CASE
|
tt.inst_cd = (
|
||||||
WHEN
|
CASE
|
||||||
tt.inst_clas_cd = '1'
|
WHEN
|
||||||
THEN
|
tt.inst_clas_cd = '1'
|
||||||
tt.inst_cd
|
THEN
|
||||||
WHEN
|
tt.inst_cd
|
||||||
(tt.inst_clas_cd = '2' OR tt.inst_clas_cd = '3')
|
WHEN
|
||||||
THEN
|
(tt.inst_clas_cd = '2' OR tt.inst_clas_cd = '3')
|
||||||
vimt.v_inst_cd_merge
|
THEN
|
||||||
END
|
vimt.v_inst_cd_merge
|
||||||
)
|
END
|
||||||
tt.v_inst_cd = vimt.v_inst_cd_merge,
|
),
|
||||||
tt.inst_name = vimt.fcl_name,
|
tt.v_inst_cd = vimt.v_inst_cd_merge,
|
||||||
tt.inst_name_kana = vimt.fcl_kn_name,
|
tt.inst_name = vimt.fcl_name,
|
||||||
tt.address = vimt.fmt_addr,
|
tt.inst_name_kana = vimt.fcl_kn_name,
|
||||||
tt.prefc_cd = vimt.prft_cd,
|
tt.address = vimt.fmt_addr,
|
||||||
tt.dwh_upd_dt = SYSDATE()
|
tt.pref_cd = vimt.prft_cd,
|
||||||
WHERE
|
tt.dwh_upd_dt = SYSDATE()
|
||||||
tt.v_inst_cd = vimt.v_inst_cd
|
WHERE
|
||||||
AND (tt.inst_clas_cd IN ('1', '2', '3'))
|
tt.v_inst_cd = vimt.v_inst_cd
|
||||||
;
|
AND (tt.inst_clas_cd IN ('1', '2', '3'))
|
||||||
|
";
|
||||||
|
SET @update_institution = REPLACE(@update_institution, "$$target_table$$", target_table);
|
||||||
|
PREPARE update_institution_stmt from @update_institution;
|
||||||
|
EXECUTE update_institution_stmt;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'【洗替】3:HCO施設コードの洗替① 終了'
|
'【洗替】3:HCO施設コードの洗替① 終了'
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
||||||
CREATE PROCEDURE src05.whs_org_laundering(@target_table VARCHAR(64))
|
CREATE PROCEDURE src05.whs_org_laundering(target_table VARCHAR(255))
|
||||||
SQL SECURITY INVOKER
|
SQL SECURITY INVOKER
|
||||||
BEGIN
|
BEGIN
|
||||||
-- スキーマ名
|
-- スキーマ名
|
||||||
@ -7,10 +7,10 @@ BEGIN
|
|||||||
-- プロシージャ名
|
-- プロシージャ名
|
||||||
DECLARE procedure_name VARCHAR(100) DEFAULT 'whs_org_laundering';
|
DECLARE procedure_name VARCHAR(100) DEFAULT 'whs_org_laundering';
|
||||||
-- プロシージャの引数
|
-- プロシージャの引数
|
||||||
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
||||||
|
|
||||||
-- 例外処理
|
-- 例外処理
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||||
BEGIN
|
BEGIN
|
||||||
GET DIAGNOSTICS CONDITION 1
|
GET DIAGNOSTICS CONDITION 1
|
||||||
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
||||||
@ -29,11 +29,11 @@ BEGIN
|
|||||||
TRUNCATE TABLE internal05.whs_customer_org_t;
|
TRUNCATE TABLE internal05.whs_customer_org_t;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'【洗替】1.卸組織洗替① 終了'
|
'【洗替】1.卸組織洗替① 終了'
|
||||||
);
|
);
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'【洗替】1.卸組織洗替② 開始'
|
'【洗替】1.卸組織洗替② 開始'
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO
|
INSERT INTO
|
||||||
@ -43,7 +43,7 @@ BEGIN
|
|||||||
customer_cd,
|
customer_cd,
|
||||||
whs_org_cd,
|
whs_org_cd,
|
||||||
v_org_cd,
|
v_org_cd,
|
||||||
nm_2
|
name_2
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
wcmv.whs_cd,
|
wcmv.whs_cd,
|
||||||
@ -89,30 +89,35 @@ BEGIN
|
|||||||
ON ocmv.v_org_cd = mohv2.v_cd_2
|
ON ocmv.v_org_cd = mohv2.v_cd_2
|
||||||
WHERE
|
WHERE
|
||||||
wcmv.rec_sts_kbn != '9'
|
wcmv.rec_sts_kbn != '9'
|
||||||
AND src05.get_syor_date() BETWEEN wcmv.start_date AND wcmv.end_date;
|
AND src05.get_syor_date() BETWEEN wcmv.start_date AND wcmv.end_date
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
|
||||||
'【洗替】1.卸組織洗替② 終了'
|
|
||||||
);
|
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
|
||||||
'【洗替】1.卸組織洗替③ 開始'
|
|
||||||
);
|
|
||||||
|
|
||||||
UPDATE
|
|
||||||
src05.sales_lau AS sl, src05.@target_table AS tt
|
|
||||||
SET
|
|
||||||
sl.whs_org_cd = tt.whs_org_cd,
|
|
||||||
sl.v_whsorg_cd = tt.v_org_cd,
|
|
||||||
sl.whs_org_name = tt.nm_2
|
|
||||||
WHERE
|
|
||||||
st.whs_cd = tt.whs_cd
|
|
||||||
AND st.whs_sub_cd = tt.whs_sub_cd
|
|
||||||
AND st.customer_cd = tt.customer_cd
|
|
||||||
;
|
;
|
||||||
|
|
||||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
'【洗替】1.卸組織洗替③ 終了'
|
'【洗替】1.卸組織洗替② 終了'
|
||||||
|
);
|
||||||
|
|
||||||
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
|
'【洗替】1.卸組織洗替③ 開始'
|
||||||
|
);
|
||||||
|
|
||||||
|
SET @update_organization = "
|
||||||
|
UPDATE
|
||||||
|
$$target_table$$ AS tt, internal05.whs_customer_org_t AS wcot
|
||||||
|
SET
|
||||||
|
tt.whs_org_cd = wcot.whs_org_cd,
|
||||||
|
tt.v_whsorg_cd = wcot.v_org_cd,
|
||||||
|
tt.whs_org_name = wcot.name_2
|
||||||
|
WHERE
|
||||||
|
wcot.whs_cd = tt.rec_whs_cd
|
||||||
|
AND wcot.whs_sub_cd = tt.rec_whs_sub_cd
|
||||||
|
AND wcot.customer_cd = tt.rec_cust_cd
|
||||||
|
";
|
||||||
|
SET @update_organization = REPLACE(@update_organization, "$$target_table$$", target_table);
|
||||||
|
PREPARE update_organization_stmt from @update_organization;
|
||||||
|
EXECUTE update_organization_stmt;
|
||||||
|
|
||||||
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||||
|
'【洗替】1.卸組織洗替③ 終了'
|
||||||
);
|
);
|
||||||
|
|
||||||
END
|
END
|
||||||
Loading…
x
Reference in New Issue
Block a user