forum Ancestrologie
Ancestrologie - Plugins et Outils => BOA => Discussion démarrée par: guillaume simonnet le 31 Janvier 2006 à 10:43:55
-
je me demandais s'il etait possible de construire des requetes sql pouvant me retourner les infos suivantes:
- individu ayant vecu le plus longtemps: avec une variante comprenant les vivants et si possible avec une reponse que l'on pourrait poser par siecle
- couple avec le plus d'enfants
- individu qui a le plus d'unions
ces infos me permettraient d'enrichir mes pages web d'infos inhabituelles. je suis sur que je peux en trouver d'autres si necessaire 8)
avis aux specialistes :D
-
Je n'ai pas le temps de faire les requêtes ni de les tester, mais un des principes est le suivant (pour l'âge) :
select * from table1 t1
where t1.champ in (
select max(champ) from table1 t2
)
Désolé de ne pouvoir te consacrer plus de temps, mais je ne doute pas que d'autres en auront...
-
retourner les infos suivantes:
- individu ayant vecu le plus longtemps:
guillaume tu peux essayer ça
select i.cle_fiche, i.nom, i.prenom, i.age_au_deces
from individu i
where i.age_au_deces in (select max(i2.age_au_deces)
from individu i2)
-
merci pierre je vais essayer :)
-
Si tu as plusieurs dossiers dans ta base, pense à inclure la sélection du bon dossier dans les clauses WHERE.
select cle_fiche,nom,prenom,age_au_deces
from individu
where age_au_deces= (select max(age_au_deces) from individu where kle_dossier=1)
and kle_dossier=1
L'idéal serait que tu inclus toutes les requêtes dans un fichier excel ou openoffice, interfacé par odbc avec ta base.
A+
André
-
L'idéal serait que tu inclus toutes les requêtes dans un fichier excel ou openoffice, interfacé par odbc avec ta base.
a part le fichier excel je n'ai rien compris :!: :oops: :oops:
-
I am better in SQL than in english, but it is a good link: http://www.ancestrologie.org/forum/index.php?topic=4776.0&start=0
Andrew
-
Andrew
you're a prince :wink: :lol: :lol: :lol:
-
guillaume
pour les unions je te propose d'essayer ça :
select i.cle_fiche , i.nom, i.prenom, count(u.union_clef) as nombre_mariage
from individu i, t_union u
where i.cle_fiche = u.union_mari
and u.union_type =1
and i.kle_dossier = 1
group by i.cle_fiche , i.nom, i.prenom
having count(u.union_clef)>1
union
select i.cle_fiche , i.nom, i.prenom, count(u.union_clef) as nombre_mariage
from individu i, t_union u
where i.cle_fiche = u.union_femme
and u.union_type =1
and i.kle_dossier = 1
group by i.cle_fiche , i.nom, i.prenom
having count(u.union_clef)>1
bien sur tu peux changer le numéro de dossier (i.kle_dossier)
cette requete te ramène les mariages (union de type 1 me semble-t-il)
sup à 1 donc tu peux aussi changer le 1 de having count(u.union_clef)>1 par 2, 3 etc...