Bonjour,
j'ai actuellement 2 requêtes SQL qui me permettent de créer 2 tables puis je regroupe ces 2 tables en utilisant une étape data dans SAS. Afin de diminuer les temps de traitement, l'objectif est de faire tout cela via 1 unique requete SQL optimisée.
Un peu plus de détails:
La 1ère requête :
La 2ème requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 create table persdetinta as select person_id, gender as sex, nationality, case nationality when 'CH ' then 0 when ' ' then 0 else 1 end as non_native length 3, language, marital_state as marital_status, party_inf_chplus as chplus, party_inf_adb as adb, block_for_advertis from p_person(dbkey= party_id,) a, sampleh b where a.party_id eq b.person_id and &now_date between valid_from and valid_to;
Avec cette 2eme requete, j'obtiens tous les enreg du person_id. Je ne souhaite en fait prendre en compte que le dernier enregistrement ie celui avec la data valid_from la plus récente (normalement je fais cela ds une procédure SAS).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 create table agefix as select person_id, valid_from, date_of_birth from p_person(dbkey party_id) a, sampleh b where a.party_id eq b.person_id and date_of_birth ne .;
Après avoir fait cette sélection je souhaite regrouper les 2 tables obtenues en une seule en prenant comme base la table persdetinta et en mergeant sur person_id.
Remarque : les 2 requêtes utilisent les mêmes tables sources mais les conditions (where) ne sont pas les mêmes...
Qqn a-t-il une idée?merci
Partager