You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

62 lines
1.5 KiB

-- 1/3 : Création de la table temporaire
DROP TABLE IF EXISTS w_dbsetup
;
CREATE TEMP TABLE w_dbsetup AS
SELECT
oid as keepoid,
code,
texte
FROM activite.t_traitement_epmsi
ORDER BY code LIMIT 0
;
-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
keepoid,
code,
texte
)
VALUES
(0, '**', 'Non renseigné'),
(41, 'EXHAD', 'PMSI HAD Transmis'),
(11, 'EXMCO', 'PMSI MCO Transmis'),
(31, 'EXPSY', 'PMSI PSY Transmis'),
(21, 'EXSSR', 'PMSI SSR Transmis'),
(5, 'HPMSI', 'HORS PMSI'),
(40, 'NEXHAD', 'PMSI HAD Non Transmis'),
(10, 'NEXMCO', 'PMSI MCO Non Transmis'),
(30, 'NEXPSY', 'PMSI PSY Non Transmis'),
(20, 'NEXSSR', 'PMSI SSR Non Transmis')
;
-- 3/3 : Màj de la table iCTI
UPDATE activite.t_traitement_epmsi SET
code = w_dbsetup.code,
texte = w_dbsetup.texte
FROM w_dbsetup
WHERE w_dbsetup.keepoid = t_traitement_epmsi.oid AND w_dbsetup.keepoid = 0;
UPDATE activite.t_traitement_epmsi SET
texte = w_dbsetup.texte
FROM w_dbsetup
WHERE 1=1
AND activite.t_traitement_epmsi.code = w_dbsetup.code
AND activite.t_traitement_epmsi.texte IS DISTINCT FROM w_dbsetup.texte
;
INSERT INTO activite.t_traitement_epmsi(oid, code, texte)
SELECT keepoid, code, texte
FROM w_dbsetup
WHERE 1=1
AND keepoid = 0
AND keepoid NOT IN (SELECT oid FROM activite.t_traitement_epmsi)
;
INSERT INTO activite.t_traitement_epmsi(oid,code,texte)
SELECT keepoid, code, texte
FROM w_dbsetup
WHERE 1=1
AND keepoid <> 0
AND code NOT IN (SELECT code FROM activite.t_traitement_epmsi)
;