Bonsoir,
Voici une petite requête que j'ai utilisée pour ajouter des dates de naissances estimées aux individus qui n'en ont pas. Je me suis basée sur l'année de naissance du premier enfant, s'il y en a une, à laquelle j'enlève 25.
Tout d'abord, la liste des individus concernés (pas de date de naissance, au moins un enfant dont l'année de naissance est connue) :
select i.cle_fiche, i.nom, i.prenom, min(ei2. EV_IND_DATE_YEAR)-25 estimation, 'estimée '||(min(ei2. EV_IND_DATE_YEAR)-25) estimation2 from individu i left join EVENEMENTS_IND ei on (i.CLE_FICHE = ei. EV_IND_KLE_FICHE and ei. EV_IND_TYPE = 'BIRT') left join individu i2 on (i2. CLE_MERE = i.CLE_FICHE or i2. CLE_PERE = i.CLE_FICHE) left join EVENEMENTS_IND ei2 on (i2.CLE_FICHE = ei2. EV_IND_KLE_FICHE and ei2. EV_IND_TYPE = 'BIRT')
where ei.EV_IND_KLE_FICHE is null
and ei2.EV_IND_DATE_YEAR is not null
group by i.cle_fiche, i.nom, i.prenom
puis la requête permettant de créer les événements adéquats :
insert into EVENEMENTS_IND ( EV_IND_KLE_FICHE , EV_IND_KLE_DOSSIER , EV_IND_TYPE , EV_IND_DATE_YEAR , EV_IND_DATE_WRITEN, EV_IND_ACTE )
select i.cle_fiche EV_IND_KLE_FICHE, 1 EV_IND_KLE_DOSSIER, 'BIRT' EV_IND_TYPE, min(ei2. EV_IND_DATE_YEAR)-25 EV_IND_DATE_YEAR, 'estimée '||(min(ei2. EV_IND_DATE_YEAR)-25)
EV_IND_DATE_WRITEN, 0 EV_IND_ACTE from individu i left join EVENEMENTS_IND ei on (i.CLE_FICHE = ei. EV_IND_KLE_FICHE and ei. EV_IND_TYPE = 'BIRT') left join individu i2 on (i2.
CLE_MERE = i.CLE_FICHE or i2. CLE_PERE = i.CLE_FICHE) left join EVENEMENTS_IND ei2 on (i2.CLE_FICHE = ei2. EV_IND_KLE_FICHE and ei2. EV_IND_TYPE = 'BIRT')
where ei.EV_IND_KLE_FICHE is null
and ei2.EV_IND_DATE_YEAR is not null
group by i.cle_fiche, i.nom, i.prenom
On peut l'exécuter plusieurs fois de suite, car à chaque exécution, on crée une date de naissance qui permettra peut-être d'estimer celle des parents. On peut aussi compléter cette requête en créant la date de naissance par rapport à celle du conjoint.
J'utilise le mot-clé 'estimée' pour les dates "complètement au pif" et le mot-clé 'vers' pour les dates calculées en fonction d'un autre événement (date au mariage ou au décès)