Auteur Sujet: liste des mariages d'une commune  (Lu 3018 fois)

plus minus reset

0 Membres et 1 Invité sur ce sujet

Hors ligne Helene

  • Expert
  • ****
  • Messages: 114
liste des mariages d'une commune
« le: 14 Septembre 2008 à 18:38:28 »
Bonjour,
J'ai écrit aujourd'hui une requête listant les mariages d'une commune après une année donnée avec nom et prénoms des conjoints, âges, dates et lieux de naissance, nom des parents, âge et date et lieux de décès éventuels, nom des conjoints précédents et date de décès (bref, en gros ce qu'on trouve comme informations dans les registres, sauf les témoins). C'est sûrement améliorable mais je la poste ici, au cas où ca serve à quelqu'un...
Hélène

select EXTRACT (DAY FROM M.DATE_UNION) AS JOUR,
EXTRACT (MONTH FROM M.DATE_UNION) AS MOIS,
EXTRACT (YEAR FROM M.DATE_UNION) AS ANNEE,
M.DATE_UNION AS DATE_ACTE,
M.MARI_NOM, M.MARI_PRENOM, M.AGE_MARI,
NAIS_LUI.EV_IND_DATE AS Lui_naissance_date,
NAIS_LUI.EV_IND_VILLE AS Lui_VILLE,
NAIS_LUI.EV_IND_SUBD AS Lui_lieu_dit,
LUI_PAPA.PRENOM as LUI_PAPA_PRENOM,
(M.AN_MARR-LUI_PAPA.ANNEE_NAISSANCE) as LUI_Papa_age,
DEC_PAPA_LUI.EV_IND_DATE AS Lui_papa_deces,
DEC_PAPA_LUI.EV_IND_VILLE AS Lui_papa_deces_VILLE,
LUI_MAMAN.NOM as LUI_MAMAN_NOM,
LUI_MAMAN.PRENOM as LUI_MAMAN_PRENOM,
(M.AN_MARR-LUI_MAMAN.ANNEE_NAISSANCE) as LUI_MAMAN_age,
DEC_MAMAN_LUI.EV_IND_DATE AS Lui_maman_deces,
DEC_MAMAN_LUI.EV_IND_VILLE AS Lui_maman_deces_VILLE,
VEUF.NOM as LUI_VEUF_DE_NOM, VEUF.PRENOM AS LUI_VEUF_DE_PRENOM,
DEC_VEUF.EV_IND_DATE AS LUI_VEUF_DE_deces,
DEC_VEUF.EV_IND_VILLE AS LUI_VEUF_DE_deces_VILLE,
M.FEMME_NOM, M.FEMME_PRENOM, M.AGE_FEMME,
NAIS_ELLE.EV_IND_DATE AS ELLE_naissance_date,
NAIS_ELLE.EV_IND_VILLE AS ELLE_VILLE,
NAIS_ELLE.EV_IND_SUBD AS ELLE_lieu_dit,
ELLE_PAPA.PRENOM as ELLE_PAPA_PRENOM,
(M.AN_MARR-ELLE_PAPA.ANNEE_NAISSANCE) as ELLE_Papa_age,
DEC_PAPA_ELLE.EV_IND_DATE AS ELLE_papa_deces,
DEC_PAPA_ELLE.EV_IND_VILLE AS ELLE_papa_deces_VILLE,
ELLE_MAMAN.NOM as ELLE_MAMAN_NOM,
ELLE_MAMAN.PRENOM as ELLE_MAMAN_PRENOM,
(M.AN_MARR-ELLE_MAMAN.ANNEE_NAISSANCE) as ELLE_MAMAN_age,
DEC_MAMAN_ELLE.EV_IND_DATE AS ELLE_maman_deces,
DEC_MAMAN_ELLE.EV_IND_VILLE AS ELLE_maman_deces_VILLE,
VEUVE.NOM as ELLE_VEUVE_DE_NOM, VEUVE.PRENOM AS ELLE_VEUVE_DE_PRENOM,
DEC_VEUVE.EV_IND_DATE AS ELLE_VEUVE_DE_deces,
DEC_VEUVE.EV_IND_VILLE AS ELLE_VEUVE_DE_deces_VILLE
from  proc_liste_unions(1) M
left outer join INDIVIDU LUI on M.MARI_CLE=LUI.CLE_FICHE
left outer join INDIVIDU ELLE on M.FEMME_CLE=ELLE.CLE_FICHE
left outer join INDIVIDU LUI_PAPA on  LUI.CLE_PERE = LUI_PAPA.CLE_FICHE
left outer join INDIVIDU LUI_MAMAN on  LUI.CLE_MERE = LUI_MAMAN.CLE_FICHE
left outer join EVENEMENTS_IND NAIS_LUI ON LUI.CLE_FICHE = NAIS_LUI.EV_IND_KLE_FICHE AND NAIS_LUI.EV_IND_TYPE= 'BIRT'
left outer join EVENEMENTS_IND DEC_PAPA_LUI ON LUI_PAPA.CLE_FICHE = DEC_PAPA_LUI.EV_IND_KLE_FICHE AND DEC_PAPA_LUI.EV_IND_TYPE= 'DEAT'  and DEC_PAPA_LUI.EV_IND_DATE_YEAR<M.AN_MARR+1
left outer join EVENEMENTS_IND DEC_MAMAN_LUI ON LUI_MAMAN.CLE_FICHE = DEC_MAMAN_LUI.EV_IND_KLE_FICHE AND DEC_MAMAN_LUI.EV_IND_TYPE= 'DEAT'  and DEC_MAMAN_LUI.EV_IND_DATE_YEAR<M.AN_MARR+1
left outer join INDIVIDU ELLE_PAPA on  ELLE.CLE_PERE = ELLE_PAPA.CLE_FICHE
left outer join INDIVIDU ELLE_MAMAN on  ELLE.CLE_MERE = ELLE_MAMAN.CLE_FICHE
left outer join EVENEMENTS_IND NAIS_ELLE ON ELLE.CLE_FICHE = NAIS_ELLE.EV_IND_KLE_FICHE AND NAIS_ELLE.EV_IND_TYPE= 'BIRT'
left outer join EVENEMENTS_IND DEC_PAPA_ELLE ON ELLE_PAPA.CLE_FICHE = DEC_PAPA_ELLE.EV_IND_KLE_FICHE AND DEC_PAPA_ELLE.EV_IND_TYPE= 'DEAT'  and DEC_PAPA_ELLE.EV_IND_DATE_YEAR<M.AN_MARR+1
left outer join EVENEMENTS_IND DEC_MAMAN_ELLE ON ELLE_MAMAN.CLE_FICHE = DEC_MAMAN_ELLE.EV_IND_KLE_FICHE AND DEC_MAMAN_ELLE.EV_IND_TYPE= 'DEAT' and DEC_MAMAN_ELLE.EV_IND_DATE_YEAR<M.AN_MARR+1
left join proc_trouve_conjoints(0,LUI.cle_fiche) VEUF ON (1=1 and M.UNION_CLE <> VEUF.UNION_CLEF and VEUF.ANNEE_DECES<M.AN_MARR+1)
left outer join EVENEMENTS_IND DEC_VEUF ON VEUF.CLE_FICHE = DEC_VEUF.EV_IND_KLE_FICHE AND DEC_VEUF.EV_IND_TYPE= 'DEAT'
left join proc_trouve_conjoints(0,ELLE.cle_fiche) VEUVE ON (1=1 and M.UNION_CLE <> VEUVE.UNION_CLEF and VEUVE.ANNEE_DECES<M.AN_MARR+1)
left outer join EVENEMENTS_IND DEC_VEUVE ON VEUVE.CLE_FICHE = DEC_VEUVE.EV_IND_KLE_FICHE AND DEC_VEUVE.EV_IND_TYPE= 'DEAT'
where ville='Quimper' and AN_MARR>1900  order by ANNEE, MOIS, JOUR
 

Hors ligne DDdeBerdeux

liste des mariages d'une commune
« Réponse #1 le: 14 Septembre 2008 à 19:17:31 »
Bonjour,
Félicitations.
Si je peux me permettre un petit conseil: au lieu d'extraire les années et mois de DATE_UNION utilisez MOIS_MARR et AN_MARR et affichez plutôt DATE_MARR à la place de DATE_UNION. DATE_UNION, champ au format date, n'existe que si la date enregistrée est complète. Une date saisie sous la forme "juin 1938" (=DATE_MARR) laisse DATE_UNION nul alors que MOIS_MARR=6 et AN_MARR=1938.
Et pour le tri, order by AN_MARR, MOIS_MARR, DATE_UNION fonctionne correctement.
Si un individu est veuf plus d'une fois avant ce mariage, vous aurez une répétition des enregistrements. Utiliser first(1) avec order by ordre_union desc dans une sous-requête devrait permettre de résoudre ce problème.
A+
André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)