Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize | PHPize | SQLtest

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

A A A
Login    Share code      Blog   FAQ
Copy Format Clear
DELIMITER // CREATE FUNCTION `ANPI_DEP_MAKE`(p_TARGET NVARCHAR(100)) RETURNS @RETTABLE TABLE ( 更新区分 NVARCHAR(15) , 組織コード NVARCHAR(15) , 第1階層 NVARCHAR(15) , 第2階層 NVARCHAR(15) , 第3階層 NVARCHAR(15) , 所属名 NVARCHAR(100) , 都道府県コード NVARCHAR(10) , 報告確認対象フラグ NVARCHAR(10) ) DETERMINISTIC BEGIN DECLARE JSONDATA LONGTEXT; DROP TEMPORARY TABLE IF EXISTS tmp_安否組織一覧; CREATE TEMPORARY TABLE tmp_安否組織一覧 ( 会社コード NVARCHAR(15) , 会社名 NVARCHAR(100) , 本部コード NVARCHAR(15) , 本部名 NVARCHAR(100) , 部コード NVARCHAR(15) , 部名 NVARCHAR(100) , 課コード NVARCHAR(15) , 課名 NVARCHAR(100) , エリアコード NVARCHAR(15) , エリア名 NVARCHAR(100) , 店舗コード NVARCHAR(15) , 店舗名 NVARCHAR(100) , 所属コード NVARCHAR(15) , 所属名 NVARCHAR(100) , 上位部門コード NVARCHAR(15) , 所属組織階層レベル INT , 店舗組織レベル INT , 最下層組織コード NVARCHAR (15) ); DROP TEMPORARY TABLE IF EXISTS tmp_安否組織一覧投入用; CREATE TEMPORARY TABLE tmp_安否組織一覧投入用 ( 更新区分 NVARCHAR(15) , 組織コード NVARCHAR(15) , 第1階層 NVARCHAR(15) , 第2階層 NVARCHAR(15) , 第3階層 NVARCHAR(15) , 所属名 NVARCHAR(100) , 都道府県コード NVARCHAR(10) , 報告確認対象フラグ NVARCHAR(10) ) ; -- SQLINES DEMO *** の場合 -- SQLINES DEMO *** 部)を削除(会社に統合する) insert into tmp_安否組織一覧 select * from json_table(ANPI_DEP_TARGET('0'), '$[*]' columns()) WHERE NOT ( 所属組織階層レベル IN (3, 4, 5) AND 店舗組織レベル IS NOT NULL ); -- SQLINES DEMO *** をクリア -- 上位... SQLINES DEMO *** UPDATE tmp_安否組織一覧 SET 本部コード = NULL , 本部名 = NULL , 部コード = NULL , 部名 = NULL WHERE 店舗組織レベル = 8 ; -- SQLINES DEMO *** 否組織一覧 order by 所属コード -- SQLINES DEMO *** ------------------------------- -- 安否... SQLINES DEMO *** -- 第1... SQLINES DEMO *** -- SQLINES DEMO *** 理を分岐 -- 配下... SQLINES DEMO *** -- SQLINES DEMO *** 課でない場合) -- SQLINES DEMO *** 織がエリアでない場合) -- SQLINES DEMO *** の組織の想定 -- SQLINES DEMO *** )に2組織ある場合は本部、どちらか1組織の場合はその組織を設定 -- SQLINES DEMO *** )に2組織ある場合は部、どちらか1組織の場合はブランク INSERT INTO tmp_安否組織一覧投入用 SELECT '1' AS 更新区分 , DEP.所属コード AS `組織コード` , CASE WHEN DEP.所属コード <> DEP.会社コード THEN DEP.会社コード END AS `第1階層` , CASE WHEN DEP.店舗組織レベル = 8 THEN CASE WHEN DEP.所属コード <> DEP.課コード THEN DEP.課コード END WHEN DEP.店舗組織レベル IS NULL THEN CASE WHEN DEP.所属コード = DEP.本部コード THEN '' WHEN DEP.所属コード = DEP.部コード THEN DEP.本部コード WHEN DEP.所属コード = DEP.課コード AND DEP.本部コード IS NOT NULL AND DEP.部コード IS NOT NULL THEN DEP.本部コード WHEN DEP.所属コード = DEP.課コード AND DEP.本部コード IS NULL AND DEP.部コード IS NOT NULL THEN DEP.部コード WHEN DEP.所属コード = DEP.課コード AND DEP.本部コード IS NOT NULL AND DEP.部コード IS NULL THEN DEP.本部コード WHEN DEP.所属コード = DEP.課コード AND DEP.本部コード IS NULL AND DEP.部コード IS NULL THEN '' END END AS `第2階層` , CASE WHEN DEP.店舗組織レベル = 8 THEN CASE WHEN DEP.所属コード <> DEP.エリアコード THEN DEP.エリアコード END WHEN DEP.店舗組織レベル IS NULL THEN CASE WHEN DEP.所属コード = DEP.本部コード THEN '' WHEN DEP.所属コード = DEP.部コード THEN '' WHEN DEP.所属コード = DEP.課コード AND DEP.本部コード IS NULL THEN '' WHEN DEP.所属コード = DEP.課コード AND DEP.本部コード IS NOT NULL THEN DEP.部コード END END AS `第3階層` , DEP.所属名 , CASE WHEN TENPO.PREFECTURE_CODE IS NULL THEN '13' ELSE TENPO.PREFECTURE_CODE END AS `都道府県コード` , CASE WHEN DEP.所属コード LIKE '11%' THEN '1' ELSE '0' END AS `報告確認対象フラグ` -- ... SQLINES DEMO *** FROM tmp_安否組織一覧 DEP LEFT JOIN ANPI_YEXT_TENPO_MASTER TENPO ON DEP.所属コード = TENPO.SHOP_CODE UNION ALL SELECT * FROM ANPI_EXTERNAL_DEPARTMENT ; UPDATE tmp_安否組織一覧投入用 SET 更新区分 = TRIM(IFNULL(更新区分, '')) , 組織コード = TRIM(IFNULL(組織コード, '')) , 第1階層 = TRIM(IFNULL(第1階層, '')) , 第2階層 = TRIM(IFNULL(第2階層, '')) , 第3階層 = TRIM(IFNULL(第3階層, '')) , 所属名 = TRIM(IFNULL(所属名, '')) , 都道府県コード = TRIM(IFNULL(都道府県コード, '')) , 報告確認対象フラグ = TRIM(IFNULL(報告確認対象フラグ, '')) ; IF p_TARGET = 0 THEN INSERT INTO @RETTABLE SELECT * FROM tmp_安否組織一覧投入用; ELSE INSERT INTO @RETTABLE SELECT * FROM tmp_安否組織一覧投入用 EXCEPT select * from ANPI_DEPARTMENT where 更新区分 ='1' union SELECT '2' AS `更新区分` , ANPI_DEP.組織コード , ANPI_DEP.第1階層 , ANPI_DEP.第2階層 , ANPI_DEP.第3階層 , ANPI_DEP.所属名 , ANPI_DEP.都道府県コード , ANPI_DEP.報告確認対象フラグ FROM (SELECT * FROM ANPI_DEPARTMENT WHERE 更新区分 = '1') ANPI_DEP LEFT JOIN tmp_安否組織一覧投入用 DEP ON ANPI_DEP.組織コード = DEP.組織コード WHERE DEP.組織コード IS NULL; END IF; RETURN; END; // DELIMITER ;

Stuck with a problem? Got Error? Ask AI support!

Copy Clear