Bonjour,
Voici ma requête :
%macro ma_requete;
PROC SQL;
CREATE TABLE WORK.CONSO AS
SELECT
t4.BEN_IDT_ANO,
t1.BEN_AMA_COD,
t1.BEN_CDI_NIR,
t1.BEN_CMU_CAT,
t1.BEN_CMU_ORG,
t1.BEN_CMU_TOP,
t1.BEN_DCD_AME,
t1.BEN_DCD_DTE,
t1.BEN_NAI_ANN,
t1.BEN_NIR_PSA,
t1.BEN_RES_COM,
t1.BEN_RES_DPT,
t1.BEN_RNG_GEM,
t1.BEN_SEX_COD,
t1.DCT_ORD_NUM,
t1.DPN_QLF,
t1.DRG_AFF_NAT,
t1.DRG_MOD,
t1.DRG_NAT,
t1.ETB_PRE_FIN,
t1.EXE_CTX_BEN,
t1.EXE_CTX_PFS,
t1.EXE_LIE_COD,
t1.EXE_SOI_AMD,
t1.EXE_SOI_AMF,
t1.EXE_SOI_DTD,
t1.EXE_SOI_DTF,
t1.EXO_MTF,
t1.FLX_DIS_DTD,
t1.FLX_EMT_NUM,
t1.FLX_EMT_ORD,
t1.FLX_EMT_TYP,
t1.FLX_TRT_DTD,
t1.ORG_AFF_BEN,
t1.ORG_CLE_NEW,
t1.ORG_CLE_NUM,
t1.PFS_EXE_NUM,
t1.PFS_PRE_NUM,
t1.PRS_ACT_NBR,
t1.PRS_ACT_QTE,
t1.PRS_NAT_REF,
t1.PRS_ORD_NUM,
t1.PSE_ACT_NAT,
t1.PSE_SPE_COD,
t1.PSP_ACT_NAT,
t1.PSP_SPE_COD,
t1.REM_TYP_AFF,
t1.RGM_COD,
t1.RGO_REM_TAU,
t2.PHA_ACT_PRU,
t2.PHA_ORD_NUM,
t2.PHA_PRS_C13,
t2.PHA_PRS_IDE,
t3.PHA_ATC_C03,
t3.PHA_ATC_CLA,
t3.PHA_ATC_L03,
t3.PHA_ATC_LIB,
t3.PHA_CIP_C13,
t3.PHA_CIP_UCD,
t3.PHA_DOS_UNI,
t3.PHA_FRC_COD,
t3.PHA_FRC_LIB,
t3.PHA_FRM_COD,
t3.PHA_FRM_LIB,
t3.PHA_MED_COM,
t3.PHA_MED_GEN,
t3.PHA_MED_IMG,
t3.PHA_MED_NAT,
t3.PHA_MED_NOM,
t3.PHA_MED_PCP,
t3.PHA_MED_PIH,
t3.PHA_MED_SEX,
t3.PHA_MED_SPE,
t3.PHA_MEX_IND,
t3.PHA_MTF_VAL,
t3.PHA_NOM_PA,
t3.PHA_SUB_DOS,
t3.PHA_TAR_DAT
FROM ORAVUE.ER_PRS_F t1, ORAVUE.ER_PHA_F t2, ORAVUE.IR_PHA_R t3, ORAVUE.IR_BEN_R t4
WHERE (t1.DCT_ORD_NUM = t2.DCT_ORD_NUM AND t1.FLX_DIS_DTD = t2.FLX_DIS_DTD AND t1.FLX_EMT_NUM = t2.FLX_EMT_NUM AND
t1.FLX_EMT_ORD = t2.FLX_EMT_ORD AND t1.FLX_EMT_TYP = t2.FLX_EMT_TYP AND t1.FLX_TRT_DTD = t2.FLX_TRT_DTD AND
t1.ORG_CLE_NUM = t2.ORG_CLE_NUM AND t1.PRS_ORD_NUM = t2.PRS_ORD_NUM AND t1.REM_TYP_AFF = t2.REM_TYP_AFF AND
t2.PHA_PRS_C13 = t3.PHA_CIP_C13 AND t1.BEN_NIR_PSA = t4.BEN_NIR_PSA and t1.BEN_RNG_GEM = t4.BEN_RNG_GEM) AND (t1.FLX_DIS_DTD = &DFLUX AND t1.BEN_CDI_NIR = '00' AND
t1.BEN_SEX_COD NOT = 0 AND t3.PHA_ATC_CLA IN
(
'N07BC01',
'N07BC02',
'N07BC51'
) AND t1.EXE_SOI_DTD BETWEEN &DEBSOIN AND &FINSOIN AND t1.DPN_QLF NOT = 71);
QUIT;
%MEND MA_REQUETE;
%LET BORNE = 1; /* 1 : Oui 0 : Non. Indique si on a une Date de fin soins en paramètre de la requete. Si 0 La date de fin de soins sera celle du dernièr mois dispo**/
%LET DEBUT = 202150101; /*Date de Début de Soins sous la forme AAAAMMJJ **/
%LET FIN = 20151231; /*Date de Fin de Soins sous la forme AAAAMMJJ. Modification du Paramètre non nécéssaire si BORNE=0 **/
%LET NBFLUX = 6; /* Indique le Nombre de mois de Flux prix en compte après Date de Fin de Soins Modification du Paramètre non nécéssaire si si BORNE=0 **/
%m_magic_loop;