 |
www.ancestrologie.com
Le nouvel ensemble de forums touchant à Ancestrologie et à ses plugins
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Ransac Pro


Inscrit le: 28 Fév 2003 Messages: 1906 Localisation: Bordeaux
|
Posté le: 25 Mar 2005 15:50 Sujet du message: recherche avec le SQL |
|
|
j'y connaît rien en SQL et j'ai pas encore eu le temps de m'y mettre.
J'ai cependant besoin de trouver tous les individus ayant une certaine ville (exemple Vernon) dans l'évènement naissance et/ou dans l'évènement décés et/ou dans l'évènement profession et/ou au niveau des différents domiciles.
Y-a-t-il un pro du SQL pour me fournir cette routine.
Une routine subsidiaire serait la même mais avec la possibilité de filtrer avec le patronyme.
Merci _________________ N'oubliez jamais que le mieux est l'ennemi du bien et que la perfection n'est pas de ce monde !
Les définir est un défi, les réaliser est un leurre ! ... mais on aimerait tellement y croire! |
|
Revenir en haut |
|
 |
Lau Pro, Modérateur


Inscrit le: 01 Avr 2003 Messages: 1541
|
Posté le: 25 Mar 2005 18:18 Sujet du message: |
|
|
Un début de réponse ici (je n'ai pas le temps de faire la consolidation et je n'ai pas les moyens de tester ici) : http://www.ybruant.magic.fr/phpBB2/viewtopic.php?t=2551&postdays=0&postorder=asc&highlight=villes&start=15
Charlet a écrit: | Liste des actes naissances à trouver pour les individus porteurs d’un sosa, triée par ville et par date
SELECT I.NUM_SOSA as SOSA, I.NOM, I.PRENOM,
E.EV_IND_DATE_WRITEN as Dates, E.EV_IND_VILLE as Lieu
FROM INDIVIDU I, EVENEMENTS_IND E
WHERE I.KLE_DOSSIER = 1
AND I.NUM_SOSA IS NOT NULL
AND E.EV_IND_KLE_FICHE = I.CLE_FICHE
AND E.EV_IND_KLE_DOSSIER = I.KLE_DOSSIER
AND E.EV_IND_TYPE = 'BIRT'
AND (E.EV_IND_ACTE = 0 or E.EV_IND_ACTE IS NULL)
ORDER BY E.EV_IND_VILLE, E.EV_IND_DATE, I.NUM_SOSA |
Il suffit d'ajouter dans la liste des AND :
Code: | and upper(E.EV_IND_VILLE) = 'NOMVILLEENMAJUSCULE' |
pthierry a écrit: | Liste des actes de mariages à trouver pour les porteurs de SOSA
SELECT I.NUM_SOSA , I.NOM, I.PRENOM, I1.NUM_SOSA AS SOSA_CJT, I1.NOM AS NOM_CJT, I1.PRENOM AS PRENOM_CJT,
E.EV_FAM_DATE_WRITEN AS DATES, E.EV_FAM_VILLE AS LIEU
FROM T_UNION T, INDIVIDU I, INDIVIDU I1, EVENEMENTS_FAM E
WHERE T.KLE_DOSSIER = 1
AND I.CLE_FICHE = T.UNION_MARI
AND I.KLE_DOSSIER = T.KLE_DOSSIER
AND I.NUM_SOSA IS NOT NULL
AND I1.CLE_FICHE = T.UNION_FEMME
AND I1.KLE_DOSSIER = T.KLE_DOSSIER
AND I1.NUM_SOSA IS NOT NULL
AND E.EV_FAM_KLE_FAMILLE = T.UNION_CLEF
AND E.EV_FAM_TYPE = 'MARR'
AND (E.EV_FAM_ACTE = 0 OR E.EV_FAM_ACTE IS NULL)
ORDER BY I.NOM, I.PRENOM, I.NUM_SOSA, I1.NOM, I1.PRENOM,
I1.NUM_SOSA, E.EV_FAM_DATE_WRITEN, E.EV_FAM_VILLE
je pense qu'il n'y pas besoin de beaucoup d'explications sinon qu'on est obligé de passer par la table T_UNION pour faire le lien entre les individus et les événements familiaux |
Idem : ajouter
Code: | and upper(E.EV_FAM_VILLE) = 'NOMVILLEENMAJUSCULE' |
Bien sûr, ne pas oublier de modifier le numéro de dossier  |
|
Revenir en haut |
|
 |
Lau Pro, Modérateur


Inscrit le: 01 Avr 2003 Messages: 1541
|
Posté le: 25 Mar 2005 18:20 Sujet du message: |
|
|
Pour le nom, ajouter plutôt un and upper(I.NOM)='NOMENMAJUSCULE' |
|
Revenir en haut |
|
 |
Invité
|
Posté le: 26 Mar 2005 14:50 Sujet du message: Re: recherche avec le SQL |
|
|
Ransac a écrit: | j'y connaît rien en SQL et j'ai pas encore eu le temps de m'y mettre.
J'ai cependant besoin de trouver tous les individus ayant une certaine ville (exemple Vernon) dans l'évènement naissance et/ou dans l'évènement décés et/ou dans l'évènement profession et/ou au niveau des différents domiciles.
Y-a-t-il un pro du SQL pour me fournir cette routine. |
Bonjour Stéphane
Je ne suis pas une pro du sql mais je pense que ceci répond à ta demande...
Je n'ai pas trouvé comment rassembler les 2 résultats (événements et adresses) sans faire de doublons, donc je te les sépare pour les lister :
Remarque : il faut mettre les noms en MAJUSCULES, mais laisser les accents et tirets tels quels :
ex. Saint-Didier > SAINT-DIDIER et Montélimar > MONTéLIMAR
- Liste des individus du dossier 1 ayant Vernon dans l'évènement naissance et/ou dans l'évènement décés et/ou dans l'évènement profession et/ou au niveau des différents domiciles (sans répétition) :
SELECT DISTINCT
I.NOM,
I.PRENOM
FROM
INDIVIDU I
LEFT OUTER JOIN ADRESSES_IND A ON (I.CLE_FICHE=A.ADR_KLE_IND)
LEFT OUTER JOIN EVENEMENTS_IND E ON (I.CLE_FICHE=E.EV_IND_KLE_FICHE)
WHERE
((E.EV_IND_TYPE IN ('BIRT','DEAT','OCCU') AND
UPPER(E.EV_IND_VILLE) = 'VERNON') OR
UPPER(A.ADR_VILLE) = 'VERNON') AND I.KLE_DOSSIER = 1
order by I.NOM, I.PRENOM
- Liste des individus du dossier 1 ayant Vernon dans l'évènement naissance et/ou dans l'évènement décés et/ou dans l'évènement profession : (chacun y figure autant de fois qu'il a d'événements dans la ville)
SELECT DISTINCT
I.NOM,
I.PRENOM,
E.EV_IND_TYPE,
E.EV_IND_VILLE
FROM
INDIVIDU I
INNER JOIN EVENEMENTS_IND E ON (I.CLE_FICHE=E.EV_IND_KLE_FICHE)
WHERE
E.EV_IND_TYPE IN ('BIRT','DEAT','OCCU') AND
UPPER(E.EV_IND_VILLE) = 'VERNON' AND I.KLE_DOSSIER = 1
order by I.NOM, I.PRENOM, E.EV_IND_TYPE
- Liste des individus du dossier 1 ayant Vernon au niveau des différents domiciles : (chacun y figure autant de fois qu'il a d'adresses dans la ville)
SELECT DISTINCT
I.NOM,
I.PRENOM,
A.ADR_ADRESSE,
A.ADR_VILLE
FROM
INDIVIDU I
INNER JOIN ADRESSES_IND A ON (I.CLE_FICHE=A.ADR_KLE_IND)
WHERE
UPPER(A.ADR_VILLE) = 'VERNON' AND I.KLE_DOSSIER = 1
order by I.NOM, I.PRENOM
Citation: | Une routine subsidiaire serait la même mais avec la possibilité de filtrer avec le patronyme. |
Si tu veux restreindre la sélection à un patronyme ( ex. RANSAC), il suffit de rajouter derrière AND I.KLE_DOSSIER = 1 (noms en majuscules comme pour la ville) :
AND UPPER(I.NOM) = 'RANSAC'
 |
|
Revenir en haut |
|
 |
Lya Pro


Inscrit le: 30 Juil 2003 Messages: 945 Localisation: Seine-et-Marne (77)
|
Posté le: 26 Mar 2005 14:50 Sujet du message: |
|
|
C'était moi l'invité...  _________________
Un bon voyageur n'a pas d'itinéraire fixe, et n'a pas l'intention d'arriver... |
|
Revenir en haut |
|
 |
Ransac Pro


Inscrit le: 28 Fév 2003 Messages: 1906 Localisation: Bordeaux
|
Posté le: 26 Mar 2005 16:10 Sujet du message: |
|
|
merci à tous les deux pour votre aide, mais j'ai un problème. J'ai installé la version 236 pour essayer vos requêtes (j'suis pas sûr que celles de Laurent soit conforma à mes exigence puisqu'il y parle de SOSA).
Cependant, aucune ne donne de résultat. Je dois certainement me tromper dans l'utilisation :
Je copie la requête à partir du forum, j'ouvre dans le menu configuration le sous-menu "génération de requête SQL..."
Je vais dans l'onglet "SQL". Je colle la requête. Je clique sur la flèche d'exécution.
et j'obtiens une violation d'accès à l'adresse 00B3FC5A pour une lecture à l'adresse 00000018.  _________________ N'oubliez jamais que le mieux est l'ennemi du bien et que la perfection n'est pas de ce monde !
Les définir est un défi, les réaliser est un leurre ! ... mais on aimerait tellement y croire! |
|
Revenir en haut |
|
 |
Gvx Spécialiste


Inscrit le: 27 Déc 2004 Messages: 32 Localisation: Moselle (57)
|
Posté le: 26 Mar 2005 17:26 Sujet du message: |
|
|
Ransac a écrit: | Je dois certainement me tromper dans l'utilisation :
Je copie la requête à partir du forum, j'ouvre dans le menu configuration le sous-menu "génération de requête SQL..."
Je vais dans l'onglet "SQL". Je colle la requête. Je clique sur la flèche d'exécution.
et j'obtiens une violation d'accès à l'adresse 00B3FC5A pour une lecture à l'adresse 00000018.  |
Etrange
Je viens de suivre la procedure que tu indique avec les requetes d'Amandine
1/ je n'ai pas de message d'erreur
2/ les requetes me retournent bien les infos désirées _________________ A+ Gilles
Les petites histoires qui ont fait la grande histoire en Moselle
La généalogie de la famille |
|
Revenir en haut |
|
 |
Ransac Pro


Inscrit le: 28 Fév 2003 Messages: 1906 Localisation: Bordeaux
|
Posté le: 26 Mar 2005 18:32 Sujet du message: |
|
|
j'ai toujours cette erreur avec le requeteur installé dans Ancestrologie et cela quelque soit la routine SQL !
Par contre, j'ai lancé la requête dans le programme IBX_SQL_PCM qui est dans le répertoire d'ancestrologie et cette fois, ça marche ! _________________ N'oubliez jamais que le mieux est l'ennemi du bien et que la perfection n'est pas de ce monde !
Les définir est un défi, les réaliser est un leurre ! ... mais on aimerait tellement y croire! |
|
Revenir en haut |
|
 |
Lya Pro


Inscrit le: 30 Juil 2003 Messages: 945 Localisation: Seine-et-Marne (77)
|
Posté le: 26 Mar 2005 19:02 Sujet du message: |
|
|
Ransac a écrit: | Cependant, aucune ne donne de résultat. Je dois certainement me tromper dans l'utilisation :
Je copie la requête à partir du forum, j'ouvre dans le menu configuration le sous-menu "génération de requête SQL..."
Je vais dans l'onglet "SQL". Je colle la requête. Je clique sur la flèche d'exécution.
et j'obtiens une violation d'accès à l'adresse 00B3FC5A pour une lecture à l'adresse 00000018.  |
C'est bizarre. De toute façon, chez moi, le contenu du champ adresse (domicile) ne s'affiche pas dans le requêteur SQL, à la place, j'ai des petites images ?
Essaye dans le BOA.
Gvx a écrit: | Etrange
Je viens de suivre la procedure que tu indique avec les requetes d'Amandine
1/ je n'ai pas de message d'erreur
2/ les requetes me retournent bien les infos désirées |
Ouf ! Ce n'est pas moi qui ai cassé le requêteur à Stéphane !
Merci Gilles  _________________
Un bon voyageur n'a pas d'itinéraire fixe, et n'a pas l'intention d'arriver... |
|
Revenir en haut |
|
 |
pthierry Pro

Inscrit le: 27 Fév 2003 Messages: 455 Localisation: Paris 13
|
Posté le: 26 Mar 2005 19:32 Sujet du message: |
|
|
Ransac a écrit: | j'ai toujours cette erreur avec le requeteur installé dans Ancestrologie et cela quelque soit la routine SQL ! |
j'ai aussi ce problème , et même le clear query provoque une erreur
mais ça marche bien avec le BOA
Ransac a écrit: |
Par contre, j'ai lancé la requête dans le programme IBX_SQL_PCM qui est dans le répertoire d'ancestrologie et cette fois, ça marche ! |
je ne connais pas IBX_SQL_PCM
Lya a écrit: |
De toute façon, chez moi, le contenu du champ adresse (domicile) ne s'affiche pas dans le requêteur SQL, à la place, j'ai des petites images ? |
normal : ce champ est un blob _________________ N'oubliez pas la fonction Rechercher...
Cordialement Pierre |
|
Revenir en haut |
|
 |
Cazaux-Moutou Philippe Ancestrologie


Inscrit le: 26 Fév 2003 Messages: 781 Localisation: Guadeloupe
|
Posté le: 27 Mar 2005 03:29 Sujet du message: |
|
|
Pour le where : y a + simple que ca car la si t a un espace avant ou apres, ou si c est vernon sur qq chose, il trouvera pas
Citation: | SELECT DISTINCT
I.NOM,
I.PRENOM,
E.EV_IND_TYPE,
E.EV_IND_VILLE
FROM
INDIVIDU I
INNER JOIN EVENEMENTS_IND E ON (I.CLE_FICHE=E.EV_IND_KLE_FICHE)
WHERE
E.EV_IND_TYPE IN ('BIRT','DEAT','OCCU') AND
UPPER(E.EV_IND_VILLE) = 'VERNON' AND I.KLE_DOSSIER = 1
order by I.NOM, I.PRENOM, E.EV_IND_TYPE |
ca avec le mot CONTAIN, il les trouvera tous
SELECT DISTINCT
I.NOM,
I.PRENOM,
E.EV_IND_TYPE,
E.EV_IND_VILLE
FROM
INDIVIDU I
INNER JOIN EVENEMENTS_IND E ON (I.CLE_FICHE=E.EV_IND_KLE_FICHE)
WHERE
E.EV_IND_TYPE IN ('BIRT','DEAT','OCCU') AND
UPPER(E.EV_IND_VILLE) CONTAIN 'VERNON' AND I.KLE_DOSSIER = 1
order by I.NOM, I.PRENOM, E.EV_IND_TYPE _________________ Cordialement depuis la Guadeloupe
35° dehors, autant dedans, la mer, je vous dit pas et 55° le ti'punch |
|
Revenir en haut |
|
 |
Ransac Pro


Inscrit le: 28 Fév 2003 Messages: 1906 Localisation: Bordeaux
|
Posté le: 27 Mar 2005 10:09 Sujet du message: |
|
|
Merci pour le truc du CONTAIN, je modifierai ma requête en conséquence, mais mes requêtes ne marchent pas à partir du programme :
Ransac a écrit: | Je copie la requête à partir du forum, j'ouvre dans le menu configuration le sous-menu "génération de requête SQL..."
Je vais dans l'onglet "SQL". Je colle la requête. Je clique sur la flèche d'exécution.
et j'obtiens une violation d'accès à l'adresse 00B3FC5A pour une lecture à l'adresse 00000018.  |
As-tu une idée du problème ? A priori, tout le monde ne l'a pas, mais cette adresse correspond-t-elle à quelque chose dans ton programme ? _________________ N'oubliez jamais que le mieux est l'ennemi du bien et que la perfection n'est pas de ce monde !
Les définir est un défi, les réaliser est un leurre ! ... mais on aimerait tellement y croire! |
|
Revenir en haut |
|
 |
pthierry Pro

Inscrit le: 27 Fév 2003 Messages: 455 Localisation: Paris 13
|
Posté le: 27 Mar 2005 10:59 Sujet du message: |
|
|
Cazaux-Moutou Philippe a écrit: |
ca avec le mot CONTAIN, il les trouvera tous
SELECT DISTINCT
I.NOM,
I.PRENOM,
E.EV_IND_TYPE,
E.EV_IND_VILLE
FROM
INDIVIDU I
INNER JOIN EVENEMENTS_IND E ON (I.CLE_FICHE=E.EV_IND_KLE_FICHE)
WHERE
E.EV_IND_TYPE IN ('BIRT','DEAT','OCCU') AND
UPPER(E.EV_IND_VILLE) CONTAIN 'VERNON' AND I.KLE_DOSSIER = 1
order by I.NOM, I.PRENOM, E.EV_IND_TYPE |
ça serait pas plutot containing _________________ N'oubliez pas la fonction Rechercher...
Cordialement Pierre |
|
Revenir en haut |
|
 |
Horemans Pro


Inscrit le: 14 Mar 2003 Messages: 333 Localisation: Aisne
|
Posté le: 27 Mar 2005 11:23 Sujet du message: |
|
|
J'ai le même code erreur que Ransac en procédant de la même façon.
Le requeteur ne doit pas aimer la syntaxe utilisée pour indiquer l'origine de la colonne (ex : Individu I)
En testant dans le Boa, c'est containing qu'il faut utiliser et non contain _________________ Plus çà va, plus je me régale... Philippe |
|
Revenir en haut |
|
 |
Cazaux-Moutou Philippe Ancestrologie


Inscrit le: 26 Fév 2003 Messages: 781 Localisation: Guadeloupe
|
Posté le: 28 Mar 2005 12:34 Sujet du message: |
|
|
Oui c est bien containing, j avais oublié la fin dans mon copier coller _________________ Cordialement depuis la Guadeloupe
35° dehors, autant dedans, la mer, je vous dit pas et 55° le ti'punch |
|
Revenir en haut |
|
 |
|
|
Vous pouvez poster de nouveaux sujets dans ce forum Vous pouvez répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|