Bonjour,
Je suis nouvel utilisateur du SNDS et je souhaite étudier les indemnités journalières via la base ER_PRS_F.
J’ai construit un code qui agrège par individu sur une ou plusieurs années le total perçu rapporté aux jours d’arrêts.
Une première difficulté que j’ai réussi (il me semble) à contourner était l’existence de nombreux remboursements de trop perçu d’IJ qu’il fallait netter.
Néanmoins, malgré ces corrections, j’observe encore un résultat incohérent au niveau global de ma requête. J’obtiens environ 10M de bénéficiaires pour 2022, alors que la DREES en indique moitié moins pour 2023, ce qui me semble assez improbable.
En outre, j’observe des individus avec des IJ présentant des indemnisations journalières très élevées (> 120€), au-dessus du plafond d’IJSS. Egalement, j’observe un grand nombre d’individus (plus d’1 M) percevant des IJ avec un montant journalier relativement faible (<10€).
En revanche, la dépense totale semble correspondre avec la dépense totale d’IJ observée en 2022, soit 12Md€.
J’inclus mes codes ci-dessous !
/* Requête mise dans la magic loop */
PROC SQL;
CREATE TABLE WORK.CONSO AS
SELECT t1.FLX_DIS_DTD,
t1.EXE_SOI_DTD,
t1.EXE_SOI_DTF,
t1.PRS_NAT_REF,
t1.RGM_COD,
/* Durée de l'IJ */
((t1.EXE_SOI_DTF-t1.EXE_SOI_DTD)/86400 + 1) AS 'Durée de l''IJ'n,
t1.BSE_REM_BSE,
t1.BEN_NIR_PSA,
t1.BSE_REM_MNT,
t1.BSE_REM_PRU,
t1.BSE_REM_SGN,
/* Montant de l'IJ journalier */
(t1.BSE_REM_MNT/((t1.EXE_SOI_DTF-t1.EXE_SOI_DTD)/86400 + 1)) AS 'Montant de l''IJ journalier'n,
t1.RGO_ASU_NAT,
t1.BEN_RNG_GEM,
/* Durée nette de l'IJ */
((CASE
WHEN t1.BSE_REM_SGN>1 THEN -1
ELSE 1
END)*((t1.EXE_SOI_DTF-t1.EXE_SOI_DTD)/86400 + 1)) AS 'Durée nette de l''IJ'n
FROM ORAVUE.ER_PRS_F t1
WHERE t1.FLX_DIS_DTD = &DFLUX AND (T1.EXE_SOI_DTD between &DEBSOIN AND &FINSOIN) AND t1.PRS_NAT_REF IN
(
6110,
6111,
6112,
6113,
6115,
6116,
6117,
6118,
6119,
6121,
6122,
6123,
6124,
6212,
6120,
6134,
6135,
6239
) AND t1.RGO_ASU_NAT = 10 AND t1.BEN_CDI_NIR = '00' AND t1.DPN_QLF NOT = 71 AND t1.BEN_SEX_COD NOT = 0
ORDER BY t1.EXE_SOI_DTD;
QUIT;
/*Requête de traitement post-magic loop : on se restreint aux plus gros régimes et aux actes usuels*/
PROC SQL;
CREATE TABLE WORK.COMPIL_CONSO_RESTREINTE AS
SELECT t1.BEN_NIR_PSA,
t1.BEN_RNG_GEM,
t1.BSE_REM_BSE,
t1.BSE_REM_MNT,
t1.BSE_REM_PRU,
t1.BSE_REM_SGN,
t1.'Durée de l''IJ'n,
t1.'Durée nette de l''IJ'n,
t1.EXE_SOI_DTD,
t1.EXE_SOI_DTF,
t1.FLX_DIS_DTD,
t1.'Montant de l''IJ journalier'n,
t1.PRS_NAT_REF,
t1.RGM_COD,
t1.RGO_ASU_NAT
FROM WORK.COMPIL_CONSO t1
WHERE t1.RGM_COD IN
(
101,
1,
105,
930,
2,
106,
900,
100,
910,
241,
107,
160,
920
) AND t1.PRS_NAT_REF IN
(
6110,
6111,
6112,
6113,
6114,
6115,
6117,
6118,
6119
)
ORDER BY t1.BSE_REM_MNT;
QUIT;
PROC SQL;
CREATE TABLE WORK.aggreg_ij AS
SELECT t1.BEN_NIR_PSA,
t1.BEN_RNG_GEM,
/* SUM_of_BSE_REM_MNT */
(SUM(t1.BSE_REM_MNT)) FORMAT=11.2 AS SUM_of_BSE_REM_MNT,
/* SUM_of_Durée nette de l'IJ */
(SUM(t1.'Durée nette de l''IJ'n)) AS 'SUM_of_Durée nette de l''IJ'n
FROM WORK.COMPIL_CONSO_RESTREINTE t1
GROUP BY t1.BEN_NIR_PSA,
t1.BEN_RNG_GEM;
QUIT;
PROC SQL;
CREATE TABLE WORK.AGGREG_IJ_BIS AS
SELECT t1.BEN_NIR_PSA,
t1.BEN_RNG_GEM,
t1.SUM_of_BSE_REM_MNT,
t1.'SUM_of_Durée nette de l''IJ'n,
/* Calcul */
(t1.SUM_of_BSE_REM_MNT/t1.'SUM_of_Durée nette de l''IJ'n) AS Calcul
FROM WORK.AGGREG_IJ t1
ORDER BY Calcul DESC;
QUIT;
Est-ce que vous auriez une explication ?
Merci par avance,
Baptiste Micheli