Requête - Fusion avec condition
Bonjour le Forum :coucou:,
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:
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:
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 ?