forum Ancestrologie
Ancestrologie - Le Programme => Ancestrologie - Spécifiques => Requêtes SQL => Discussion démarrée par: Roblim le 24 Mai 2012 à 14:06:29
-
Bonjour,
J'ai regardé l'extraction proposée par le document recensement.
Je m'interroge de savoir sur :
- - quelle date s'appuie celui-ci.
- - le fait de savoir s'il ne serait pas possible de l'établir en y intégrant les lieux
-
bonjour Robert,
pour la question des dates :
- pour le document recensement :
il est compté les individus vivants ...
un individu est vivant :
- si il est né
- si il génère ou est témoin d'un évènement
- s'il n'est pas mort
je crois que le plus compliqué est le traitement de l'enregistrement Décès (si il est fait) , car je pense bien que c'est celui là que souvent l'on renseigne avec des infos du type : Avant ... Après .... entre ... et ... ( et là on est dans la semoule !)
Pour les évènements avec des dates estimées , je crois qu'il faudrait les valider
Vous voudriez sortir quoi ( plus ou moins ) ?
Alain
-
Bonjour Alain,
Avec la construction de ma base de données, je poursuis deux objectifs :
- le 1er qui est la description classique sur laquelle je ne m’étendrais pas.
- Le 2ième, plus particulier, qui est de faire un zoom sur le port d’où je suis originaire en Algérie, à travers la description de toute sa population ; ce port a en effet une histoire spécifique.
C’est pour ce deuxième but, que je souhaiterais utiliser la notion de recensement peut-être d’où ma question sur l’intégration des lieux dans la restitution actuellement existante.
J’étudie aussi la piste de l’onglet Domicile, mais là il faudrait aussi qu’il soit en lien avec les tranches possibles dans le recensement.
Il est sans doute plus facile d’exposer une demande que d’en traduire la réalisation……..mais je tente!!!!!!!!
-
bonsoir,
cette petite requête peut peut-être vous aider à avoir une des images possibles de votre ville favorite.
Elle compte par année , par ville , le nombre d'évènement individuels , par nom.
Après vous êtes connecté à une base avec le generateur SQL , vous la copiez dans l'onglet SQL
Ensuite dans l'onglet résult , dans la ligne des titres de colonne , vous pouvez filtrer selon vos désirs
SELECT
count(0) AS CPT,
EVENEMENTS_IND.EV_IND_VILLE,
EVENEMENTS_IND.EV_IND_DATE_YEAR,
EVENEMENTS_IND.EV_IND_TYPE,
INDIVIDU.NOM
FROM
EVENEMENTS_IND
INNER JOIN INDIVIDU ON (EVENEMENTS_IND.EV_IND_KLE_FICHE = INDIVIDU.CLE_FICHE)
GROUP BY
EVENEMENTS_IND.EV_IND_VILLE,
EVENEMENTS_IND.EV_IND_DATE_YEAR,
EVENEMENTS_IND.EV_IND_TYPE,
INDIVIDU.NOM
j'ai oublié de spécifier le dossier , si vous n'en avez qu'un , il ne devrait pas y avoir de problèmes
-
Bonsoir Alain,
Je vous remercie.
La requête fonctionne merveilleusement et en effet, le résultat donne une bonne image des évènements.
A moi d'adapter ma saisie.
Bravo pour votre célérité
-
Bonsoir,
Je tente sur le même sujet pour ne pas encombrer!!!
Je voudrais faire ce comptage sur les mariages. J'ai essayer d'extrapoler mais.........c'est un métier et je n'arrive pas.
Je vous sollicite de nouveau pour avoir la requete qui compte de la même facon les mariages
-
je reviens sur les évènements individuels : par villes / par Type et par Nom
je trouve que ce qui suit est mieux pour le comptage
vous pouvez ajuster pour des périodes en modifiant la ligne qui suit :
INDIVIDU.ANNEE_NAISSANCE BETWEEN 1500 AND 2013
Utilisée dans le générateur SQL , vous pouvez filtrer par ville , type d'évènement , Nom
Pour les filtres vous pouvez utiliser les 2 caractères génériques suivants :
% remplace une série de caractères
_ remplace un caractère
SELECT
count(EV_IND_TYPE) AS TOTAL,
EVENEMENTS_IND.EV_IND_VILLE,
EVENEMENTS_IND.EV_IND_TYPE,
INDIVIDU.NOM
FROM
EVENEMENTS_IND
INNER JOIN INDIVIDU ON (EVENEMENTS_IND.EV_IND_KLE_FICHE = INDIVIDU.CLE_FICHE)
WHERE
(INDIVIDU.ANNEE_NAISSANCE BETWEEN 1500 AND 2013) AND
(EVENEMENTS_IND.EV_IND_KLE_DOSSIER = 1)
GROUP BY
EVENEMENTS_IND.EV_IND_VILLE,
EVENEMENTS_IND.EV_IND_TYPE,
INDIVIDU.NOM
-
Je vous remercie pour votre aide.
Je l'ai essayé, c'est parfait.
Encore Bravo
-
Pour les évènements familiaux:
- il existe dans le menu liste ---> liste des Unions
j'ai fait celle-ci pour lister aussi tous types d'évènements familiaux.
Pour qu'un couple apparaisse avec cette requête il faut qu'il y ai un évènement d'enregistré (donc éventuellement créer le mariage avec des estimations)
Vais essayer d'en faire une autre qui compte les types d'évènements familiaux par Villes et périodes
SELECT
INDIVIDU.NOM AS LUI,
INDIVIDU.PRENOM,
INDIVIDU.ANNEE_NAISSANCE AS N_LUI,
INDIVIDU1.NOM AS ELLE,
INDIVIDU1.PRENOM,
INDIVIDU1.ANNEE_NAISSANCE AS N_ELLE,
EVENEMENTS_FAM.EV_FAM_VILLE,
EVENEMENTS_FAM.EV_FAM_TYPE,
EVENEMENTS_FAM.EV_FAM_DATE_YEAR
FROM
INDIVIDU
INNER JOIN T_UNION ON (INDIVIDU.CLE_FICHE = T_UNION.UNION_MARI)
INNER JOIN INDIVIDU INDIVIDU1 ON (T_UNION.UNION_FEMME = INDIVIDU1.CLE_FICHE)
INNER JOIN EVENEMENTS_FAM ON (T_UNION.UNION_CLEF = EVENEMENTS_FAM.EV_FAM_KLE_FAMILLE)
WHERE
(T_UNION.KLE_DOSSIER = 1)
-
Voilà pour comptage par type d'évènement familiaux , par Ville
Vous pouvez en agissant sur la requête , sous WHERE :
Changer le N° de Dossier ... ligne ci-dessous
(EVENEMENTS_FAM.EV_FAM_KLE_DOSSIER = 1)
Choisir une période de comptage
(EVENEMENTS_FAM.EV_FAM_DATE_YEAR BETWEEN 1500 AND 2013)
Choisir un patronyme pour les Maris
(INDIVIDU.NOM LIKE '%')
et / ou pour les Femmes
(INDIVIDU1.NOM LIKE '%')
SELECT
COUNT(EV_FAM_TYPE) AS TOTAL,
EVENEMENTS_FAM.EV_FAM_TYPE,
EVENEMENTS_FAM.EV_FAM_VILLE
FROM
EVENEMENTS_FAM
INNER JOIN T_UNION ON (EVENEMENTS_FAM.EV_FAM_KLE_FAMILLE = T_UNION.UNION_CLEF)
INNER JOIN INDIVIDU ON (T_UNION.UNION_MARI = INDIVIDU.CLE_FICHE)
INNER JOIN INDIVIDU INDIVIDU1 ON (T_UNION.UNION_FEMME = INDIVIDU1.CLE_FICHE)
WHERE
(EVENEMENTS_FAM.EV_FAM_KLE_DOSSIER = 1) AND
(EVENEMENTS_FAM.EV_FAM_DATE_YEAR BETWEEN 1500 AND 2013) AND
(INDIVIDU.NOM LIKE '%') AND
(INDIVIDU1.NOM LIKE '%')
GROUP BY
EVENEMENTS_FAM.EV_FAM_TYPE,
EVENEMENTS_FAM.EV_FAM_VILLE
-
Sur BOA, j'ai un message d'erreur (fichier en joint)Merci
-
pas moi,
cliquez sur le lien Sélectionner ( juste au dessus de la requête)
cela va bleuir tout ce qu'il faut
faite un copié
puis un collé dans BOA
c'est sur la dernière ligne qu'est votre problème et tout à fait en fin de ligne ( refaite comme je dis plus haut)
-
Oui, cela venait bien de moi!
Ca marche.
Je vous remercie pour votre disponibilté.
pour aujourd'hui, c'est fini!