ソースコード
--処理1 :新設された部門('B300')を'A100'のデータを利用して作成する。

--DEPT_CODE = 'B300'
--START_DATE = '2023-04-01'
--END_DATE = NULL
--DEPT_NAME = '新設部門'
--LAYER = 'A100'のLAYER
--UP_DEPT_CODE = 'A100'のUP_DEPT_CODE
--VALID_FLG = '1'
--UPDATE_USER_NAME = 'A100'のUPDATE_USER_NAME
--USER_UPDATE_DATETIME = '2023-04-01 00:00:00'

insert into DEPARTMENT
select 
    'B300' AS DEPT_CODE,
    '2023-04-01' AS START_DATE,
    NULL AS END_DATE,
    '新設部門' AS DEPT_NAME,
    DEPARTMENT.LAYER AS LAYER,
    DEPARTMENT.UP_DEPT_CODE AS UP_DEPT_CODE,
    '1' AS VALID_FLG,
    DEPARTMENT.UPDATE_USER_NAME AS UPDATE_USER_NAME,
    '2023-04-01 00:00:00' AS USER_UPDATE_DATETIME
FROM DEPARTMENT
    WHERE DEPT_CODE = 'A100'
;




--処理2 :統合される部門('A100','A200')を無効に変更する。

--END_DATE = '2023-03-31'
--VALID_FLG = '0'
--UPDATE_USER_NAME = 'ORG_CHG'
--USER_UPDATE_DATETIME = '2023-03-31 23:59:59'
UPDATE DEPARTMENT 
SET 
    END_DATE = '2023-03-31',
    VALID_FLG = '0',
    UPDATE_USER_NAME = 'ORG_CHG',
    USER_UPDATE_DATETIME = '2023-03-31 23:59:59'
WHERE 
    DEPT_CODE = 'A100' OR DEPT_CODE = 'A200'
;

--処理3 : 社員テーブル(EMP)の部門コード(DEPT_CODE)が統合される部門コードになっているデータの部門コードを、新設される部門コードに変更する。ただし、有効なデータ(VALID_FLG = '1')のみ対象とする。

--DEPT_CODE ='B300'
--START_DATE = '2023-04-01'
--UPDATE_USER_NAME = 'ORG_CHG'
--USER_UPDATE_DATETIME = '2023-04-01 00:00:00'

UPDATE EMP 
SET
    DEPT_CODE ='B300',
    START_DATE = '2023-04-01',
    UPDATE_USER_NAME = 'ORG_CHG',
    USER_UPDATE_DATETIME = '2023-04-01 00:00:00'
WHERE 
    VALID_FLG = '1' AND 
    (DEPT_CODE = 'A100' OR DEPT_CODE = 'A200')
;

select * from DEPARTMENT join EMP ON DEPARTMENT.DEPT_CODE = EMP.DEPT_CODE where DEPARTMENT.DEPT_CODE = 'B300'
提出情報
提出日時2023/04/17 04:03:55
コンテスト第6回 SQLコンテスト
問題組織変更
受験者KakiageSeiro
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量76 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
76 MB
データパターン2
AC
76 MB