Bonsoir,
Effectivement, c'est bien plus simple comme ça! Je n'avais pas fait attention à tous les champs de retour. Où peut-on trouver de la doc là-dessus ? Paramètres d'entrée, de sortie, et éventuellement code des procédures ?
Par contre le BOA crash si l'on utilise le (u.union_mari=tq_cle_fiche and u.union_femme=tq_dossier) or (u.union_mari=tq_dossier and u.union_femme=tq_cle_fiche), comme il crashait dans ma première requête si je cherchais le père ou la mère dans la même requête. Du coup j'ai gardé mon précédant fonctionnement. Mais on peut quand même éviter le dédoublement, c'est un peu plus digeste!
select
tq_niveau generation,
iif(naissance.EV_IND_VILLE is null, iif(mariage.EV_FAM_VILLE is null, deces.ev_ind_ville, mariage.ev_fam_ville), naissance.EV_IND_VILLE) origine,
iif(
iif(naissance.EV_IND_VILLE is null, iif(mariage.EV_FAM_VILLE is null, deces.ev_ind_ville, mariage.ev_fam_ville), naissance.EV_IND_VILLE) = iif(naissance2.EV_IND_VILLE is null, iif(mariage2.EV_FAM_VILLE is null, deces2.ev_ind_ville, mariage2.ev_fam_ville), naissance2.EV_IND_VILLE),
'x',
iif(naissance2.EV_IND_VILLE is null, iif(mariage2.EV_FAM_VILLE is null, deces2.ev_ind_ville, mariage2.ev_fam_ville), naissance2.EV_IND_VILLE)
) migration,
i.nom nomparent, i.prenom prenomparent, i2.nom nomenft, i2.prenom prenomenft
from
(select tq_niveau, tq_cle_fiche, tq_descendant from PROC_TQ_ASCENDANCE(5457,0,0,1)),
individu i
left join EVENEMENTS_IND naissance on (i.cle_fiche = naissance.EV_IND_KLE_FICHE and naissance.EV_IND_TYPE = 'BIRT')
left join t_union u on (i.cle_pere = u.union_mari and i.cle_mere = u.union_femme)
left join EVENEMENTS_FAM mariage on (mariage.EV_FAM_KLE_FAMILLE= u.UNION_CLEF and mariage.EV_FAM_TYPE = 'MARR')
left join EVENEMENTS_IND deces on (i.cle_fiche = deces.EV_IND_KLE_FICHE and deces.EV_IND_TYPE = 'DEAT'),
individu i2
left join EVENEMENTS_IND naissance2 on (i2.cle_fiche = naissance2.EV_IND_KLE_FICHE and naissance2.EV_IND_TYPE = 'BIRT')
left join t_union u2 on (i2.cle_pere = u2.union_mari and i2.cle_mere = u2.union_femme)
left join EVENEMENTS_FAM mariage2 on (mariage2.EV_FAM_KLE_FAMILLE= u2.UNION_CLEF and mariage2.EV_FAM_TYPE = 'MARR')
left join EVENEMENTS_IND deces2 on (i2.cle_fiche = deces2.EV_IND_KLE_FICHE and deces2.EV_IND_TYPE = 'DEAT')
where
tq_cle_fiche = i.cle_fiche
and tq_descendant = i2.cle_fiche