Bonjour le Forum ,

J'ai deux requêtes.

La première me permet de récupérer deux colonnes :
  • Le NISS des personnes étant inscrites officiellement en Belgique.
  • Le Code Postal



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
select 
  P_OFF.INSS as INSS_OFF
  , nvl(A_OFF.STREET_ZIPCODE,A_OFF.ZIPCODE) AS ZIP_OFF
from 
  PERSONS P_OFF
  , PERIODIC_ADDRESSES PA_OFF
  , ADDRESSES A_OFF
where 
  P_OFF.PERSON_ID = PA_OFF.OFF_ADDR_PERSON_ID
  and PA_OFF.ADDRESS_TYPE = 'OFFICIAL'
  and CURRENT_DATE between PA_OFF.START_DATE and nvl(PA_OFF.END_DATE,'31/12/9999')
  and PA_OFF.ADDRESS_ID = A_OFF.ADDRESS_ID
  and A_OFF.type = 'STRUCTURED'


La seconde me permet de récupérer deux colonnes :
  • Le NISS des personnes étant inscrites fonctionnellement en Belgique.
  • Le Code Postal



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
select
    INSS_FUNC
    , ZIP_FUNC
from
(
select  P_FUNC.INSS AS INSS_FUNC
  , nvl(A_FUNC.STREET_ZIPCODE,A_FUNC.ZIPCODE) AS ZIP_FUNC
  , PA_FUNC.START_DATE
  , row_number() over(partition by P_FUNC.INSS order by PA_FUNC.START_DATE desc) as rn
  from
 
  PERSONS P_FUNC
  , PERIODIC_ADDRESSES PA_FUNC
  , ADDRESSES A_FUNC
where 
  P_FUNC.PERSON_ID = PA_FUNC.FUN_ADDR_PERSON_ID
  and PA_FUNC.ADDRESS_TYPE = 'FUNCTIONAL'
  and CURRENT_DATE between PA_FUNC.START_DATE and nvl(PA_FUNC.END_DATE,'31/12/9999')
  and PA_FUNC.ADDRESS_ID = A_FUNC.ADDRESS_ID
  and A_FUNC.type = 'STRUCTURED'
)
where rn=1
;

Pouvez-vous me dire comment je peux fusionner ces deux listes en gardant toutes les données de la liste 1 et en prenant les données de la liste 2 si le NISS de cette liste n'est pas présent dans la liste 1 ?
Ai-je bien été clair ?