Auteur Sujet: ajouter 2 colonnes: nombre d'enfants et nombre de conjoints  (Lu 3467 fois)

plus minus reset

0 Membres et 1 Invité sur ce sujet

Hors ligne luckyulisse

  • Expert
  • ****
  • Messages: 98
bonjour,



voila j'ai une requete qui me permet dobtenir un tableau avec pas mal d'infos, mais je n'arrive pas a ajouter une colonne avec le nombre d'enfants d'une personne (idem pour le nombre e conjoints!)



j'ai bien essayé :i.NCHI AS NB_ENF et i.NMR AS NB_CONJ

mais les colonnes sont vides



comment remplir NCHI et NMR pour tous les individus de mon dossier?



voila ma requete:



SELECT DISTINCT /*  COLONNES*/

  I. CLE_FICHE AS CLEF /*  A*/

, I. NUM_SOSA AS SOSA /*  B*/

, I. NOM AS NOM /*  C*/

, I. PRENOM AS PRENOMS /*  D*/

, I. SEXE AS SEXE /*  E*/

, I. CLE_FICHE        AS SOSAS /*  F*/  /* a remplir avec excel*/



, N. EV_IND_VILLE AS VILLE_NAISSANCE /*  G*/

, N. EV_IND_SUBD AS SUBDIVISION_NAISSANCE /*  H*/

, EXTRACT (DAY FROM N.EV_IND_DATE) AS JOUR_NAISSANCE /*  I*/

, N. EV_IND_DATE_MOIS AS MOIS_NAISSANCE /*  J*/

, N. EV_IND_DATE_YEAR AS ANNEE_NAISSANCE /*  K*/

, N. EV_IND_DATE_WRITEN AS DATE_NAISSANCE /*  L*/

, N. EV_IND_DATE_WRITEN AS PHOTO_NAISSANCE /*  M*/ /* A REMPLIR AVEC EXCEL*/



, D. EV_IND_VILLE AS VILLE_DECES /*  N*/

, D. EV_IND_SUBD AS SUBDIVISION_DECES /*  O*/

, EXTRACT (DAY FROM D.EV_IND_DATE) AS JOUR_DECES /*  P*/

, D. EV_IND_DATE_MOIS AS MOIS_DECES /*  Q*/

, D. EV_IND_DATE_YEAR AS ANNEE_DECES /*  R*/

, D. EV_IND_DATE_WRITEN AS DATE_DECES /*  S*/

, D. EV_IND_DATE_WRITEN AS AGE_DECES /*  T*/ /* a remplir avec excel*/

, D. EV_IND_DATE_WRITEN AS PHOTO_DECES /*  U*/ /* a remplir avec excel*/



, F. EV_FAM_VILLE AS VILLE_UNION /*  V*/

, EXTRACT (DAY FROM F.EV_FAM_DATE) AS JOUR_UNION /*  W*/

, F. EV_FAM_DATE_MOIS AS MOIS_UNION /*  X*/

, F. EV_FAM_DATE_YEAR AS ANNEE_UNION /*  Y*/

, F. EV_FAM_DATE_WRITEN AS DATE_UNION /*  Z*/

, R. REF_EVE_LIB_LONG AS TYPE_UNION /*  AA*/

, R. REF_EVE_LIB_LONG AS AGE_UNION /*  AB*/  /* a remplir avec excel*/

, R. REF_EVE_LIB_LONG AS PHOTO_UNION /*  AC*/  /* a remplir avec excel*/



, PROF. EV_IND_DESCRIPTION AS PROFESSIONS /*  AD*/



, IC. CLE_FICHE AS CLEF_CONJOINT /*  AE*/

, IC. NOM AS NOM_CONJOINT /*  AF*/

, IC. PRENOM AS PRENOM_CONJOINT /*  AH*/

, IC. NUM_SOSA AS SOSA_CONJOINT /*  AI*/



, P. CLE_FICHE AS CLEF_PERE /*  AJ*/

, P. NOM AS NOM_PERE /*  AK*/

, P. PRENOM AS PRENOM_PERE /*  AL*/

, P. NUM_SOSA AS NUM_SOSA_PERE /*  AM*/



, M. CLE_FICHE AS CLEF_MERE /*  AN*/

, M. NOM AS NOM_MERE /*  AO*/

, M. PRENOM AS PRENOM_MERE /*  AP*/

, M. NUM_SOSA AS NUM_SOSA_MERE /*  AQ*/



, GPP. CLE_FICHE As CLEF_GPP /*  AR*/

, GMP. CLE_FICHE As CLEF_GMP /*  AS*/

, GPM. CLE_FICHE As CLEF_GPM /*  AT*/

, GMM. CLE_FICHE As CLEF_GMM /*  AU*/

, BP. CLE_FICHE As CLEF_BP /*  AV*/

, BM. CLE_FICHE As CLEF_BM /*  AW*/



, F. EV_FAM_KLE_FAMILLE   AS CLEF_FAMILLE /*  AX*/



, tq. TQ_SOSA AS TQ_SOSAS /*  AY*/

, i. NCHI AS NB_ENF /*  AZ   reste vide??*/

, i. NMR AS NB_CONJ /*  BA    reste vide??*/



FROM INDIVIDU I



LEFT JOIN TQ_ARBREREDUIT tq ON tq.TQ_CLE_FICHE=I.CLE_FICHE



LEFT OUTER JOIN EVENEMENTS_IND N ON I.CLE_FICHE = N.EV_IND_KLE_FICHE AND N.EV_IND_TYPE= 'BIRT'

LEFT OUTER JOIN EVENEMENTS_IND D ON I.CLE_FICHE = D.EV_IND_KLE_FICHE AND D.EV_IND_TYPE= 'DEAT'

LEFT OUTER JOIN EVENEMENTS_IND PROF ON I.CLE_FICHE = PROF.EV_IND_KLE_FICHE AND PROF.EV_IND_TYPE= 'OCCU'



LEFT OUTER JOIN INDIVIDU P   ON I.CLE_PERE   = P.CLE_FICHE /*PERE*/

LEFT OUTER JOIN INDIVIDU M   ON I.CLE_MERE   = M.CLE_FICHE /*MERE*/



LEFT OUTER JOIN INDIVIDU GPP ON P.CLE_PERE   = GPP.CLE_FICHE /*GRAND PERE PATERNEL*/

LEFT OUTER JOIN INDIVIDU GMP ON P.CLE_MERE   = GMP.CLE_FICHE /*GRAND MERE PATERNEL*/

LEFT OUTER JOIN INDIVIDU GPM ON M.CLE_PERE   = GPM.CLE_FICHE /*GRAND PERE MATERNEL*/

LEFT OUTER JOIN INDIVIDU GMM ON M.CLE_MERE   = GMM.CLE_FICHE /*GRAND MERE MATERNEL*/



LEFT OUTER JOIN T_UNION U ON I.CLE_FICHE = U.UNION_MARI OR I.CLE_FICHE = U.UNION_FEMME

LEFT OUTER JOIN INDIVIDU IC ON (U.UNION_MARI = IC.CLE_FICHE OR U.UNION_FEMME = IC.CLE_FICHE) AND IC.CLE_FICHE <> I.CLE_FICHE

LEFT OUTER JOIN EVENEMENTS_FAM F ON U.UNION_CLEF = F.EV_FAM_KLE_FAMILLE

LEFT OUTER JOIN REF_EVENEMENTS R ON F.EV_FAM_TYPE =R .REF_EVE_LIB_COURT



LEFT OUTER JOIN INDIVIDU BP   ON IC.CLE_PERE = BP.CLE_FICHE /*BEAU PERE*/

LEFT OUTER JOIN INDIVIDU BM   ON IC.CLE_MERE = BM.CLE_FICHE /*BELLE MERE*/



WHERE I.KLE_DOSSIER =2

ORDER BY I.NUM_SOSA
 

Hors ligne DDdeBerdeux

ajouter 2 colonnes: nombre d'enfants et nombre de conjoints
« Réponse #1 le: 02 Mars 2007 à 23:47:34 »
Bonsoir,

La procédure PROC_INFOS_INDI(:dossier,:clef) doit vous donner tout çà. C'est la procédure appelée quand on clique sur le "i" en bas de la fiche.

Comme vous aurez pour des individus plusieurs professions, et plusieurs conjoints, vous risquez d'avoir des lignes en double.

Pour ne retenir que le dernier métier, utilisez la PROC_DERNIER_METIER(:clef).

A+

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne luckyulisse

  • Expert
  • ****
  • Messages: 98
ajouter 2 colonnes: nombre d'enfants et nombre de conjoints
« Réponse #2 le: 03 Mars 2007 à 00:05:35 »
merci de votre reponse rapide,



la procedure :PROC_INFOS_INDI(:dossier,:clef)

a besoin d'1 numero de clef mais moi je dois faire ca pour toutes les clefs

comment faire, est ce possible?



pour les lignes multiples ce n'est pas un probleme.
 

Hors ligne DDdeBerdeux

ajouter 2 colonnes: nombre d'enfants et nombre de conjoints
« Réponse #3 le: 03 Mars 2007 à 10:27:05 »
Bonjour,

Dans votre requête, remplacez

,   i.   NCHI          AS NB_ENF         /*  AZ   reste vide??*/

par:

, (select combien from proc_infos_indi(i.kle_dossier,i.cle_fiche)

   where titre='ENFAN') as NB_ENF

A+

André

PS: pour ajouter des champs colonnes vides, vous n'êtes pas obligé d'y mettre une colonne de table, vous pouvez par exemple ajouter:

, cast('' as varchar(50)) as CHAMP_SUPP

qui ajoute un champ de type 50 caractères vide.

Pour les ages, il y a les procédures PROC_AGE_INDIVIDU et PROC_AGE_EVENT qui donnent en nombre de jours l'âge de l'individu et son âge à un événement (éditez la proc pour voir les paramètres à utiliser).

J'ignore ce que vous voulez mettre dans les champs "photos", mais il y a peut-être des informations à extraire à partir de l'événement et de l'acte (mais là j'admet que les liens sont un peu tordus, il passent par les tables événements, media_pointeurs et multimedia).
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne luckyulisse

  • Expert
  • ****
  • Messages: 98
ajouter 2 colonnes: nombre d'enfants et nombre de conjoints
« Réponse #4 le: 04 Mars 2007 à 20:42:59 »
merci beaucoup ca marche tout comme il faut



, (select combien from proc_infos_indi(i.kle_dossier,i.cle_fiche)

where titre='ENFAN') as NB_ENF



c'est tres pratique mais ou on trouve le nom exact du titre car pour le nombre de conjoints j'ai tatoné pas mal avant de trouver qu'il falait mettre TITRE=UNION et pas TITRE=Conjoint ou Conjoint ou .....



photo c'est une case a cocher avec un lien vers l'acte (mais c'est sous excel)
 

Hors ligne DDdeBerdeux

ajouter 2 colonnes: nombre d'enfants et nombre de conjoints
« Réponse #5 le: 04 Mars 2007 à 20:49:58 »
Citation de: "luckyulisse"
mais ou on trouve le nom exact du titre car pour le nombre de conjoints j'ai tatoné pas mal avant de trouver qu'il falait mettre TITRE=UNION et pas TITRE=Conjoint ou Conjoint ou .....
Il suffit d'exécuter une fois select * from proc_... d'un indi marié avec enfants pour avoir les titres.

A+

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)