Index des Archives

www.ancestrologie.com
Le nouvel ensemble de forums touchant à Ancestrologie et à ses plugins 


recherche avec le SQL
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Index des Archives -> Ancestrologie - Le module SQL tres facilement
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Ransac
Pro
Pro


Inscrit le: 28 Fév 2003
Messages: 1906
Localisation: Bordeaux

MessagePosté le: 25 Mar 2005 15:50    Sujet du message: recherche avec le SQL Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur
Lau
Pro, Modérateur
Pro, Modérateur


Inscrit le: 01 Avr 2003
Messages: 1541

MessagePosté le: 25 Mar 2005 18:18    Sujet du message: Répondre en citant

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 Wink
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Lau
Pro, Modérateur
Pro, Modérateur


Inscrit le: 01 Avr 2003
Messages: 1541

MessagePosté le: 25 Mar 2005 18:20    Sujet du message: Répondre en citant

Pour le nom, ajouter plutôt un and upper(I.NOM)='NOMENMAJUSCULE'
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Invité






MessagePosté le: 26 Mar 2005 14:50    Sujet du message: Re: recherche avec le SQL Répondre en citant

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 Very Happy

Je ne suis pas une pro du sql Embarassed 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'

Very Happy Wink
Revenir en haut
Lya
Pro
Pro


Inscrit le: 30 Juil 2003
Messages: 945
Localisation: Seine-et-Marne (77)

MessagePosté le: 26 Mar 2005 14:50    Sujet du message: Répondre en citant

C'était moi l'invité... Embarassed
_________________

Un bon voyageur n'a pas d'itinéraire fixe, et n'a pas l'intention d'arriver...
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur
Ransac
Pro
Pro


Inscrit le: 28 Fév 2003
Messages: 1906
Localisation: Bordeaux

MessagePosté le: 26 Mar 2005 16:10    Sujet du message: Répondre en citant

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. Crying or Very sad
_________________
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
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur
Gvx
Spécialiste
Spécialiste


Inscrit le: 27 Déc 2004
Messages: 32
Localisation: Moselle (57)

MessagePosté le: 26 Mar 2005 17:26    Sujet du message: Répondre en citant

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. Crying or Very sad


Etrange Exclamation
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
Voir le profil de l'utilisateur Envoyer un message privé
Ransac
Pro
Pro


Inscrit le: 28 Fév 2003
Messages: 1906
Localisation: Bordeaux

MessagePosté le: 26 Mar 2005 18:32    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur
Lya
Pro
Pro


Inscrit le: 30 Juil 2003
Messages: 945
Localisation: Seine-et-Marne (77)

MessagePosté le: 26 Mar 2005 19:02    Sujet du message: Répondre en citant

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. Crying or Very sad

C'est bizarre. Confused 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 ? Shocked

Essaye dans le BOA. Wink

Gvx a écrit:
Etrange Exclamation
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 ! Laughing Laughing Laughing
Merci Gilles Wink
_________________

Un bon voyageur n'a pas d'itinéraire fixe, et n'a pas l'intention d'arriver...
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur
pthierry
Pro
Pro


Inscrit le: 27 Fév 2003
Messages: 455
Localisation: Paris 13

MessagePosté le: 26 Mar 2005 19:32    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Cazaux-Moutou Philippe
Ancestrologie
Ancestrologie


Inscrit le: 26 Fév 2003
Messages: 781
Localisation: Guadeloupe

MessagePosté le: 27 Mar 2005 03:29    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur
Ransac
Pro
Pro


Inscrit le: 28 Fév 2003
Messages: 1906
Localisation: Bordeaux

MessagePosté le: 27 Mar 2005 10:09    Sujet du message: Répondre en citant

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. Crying or Very sad


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
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur
pthierry
Pro
Pro


Inscrit le: 27 Fév 2003
Messages: 455
Localisation: Paris 13

MessagePosté le: 27 Mar 2005 10:59    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Horemans
Pro
Pro


Inscrit le: 14 Mar 2003
Messages: 333
Localisation: Aisne

MessagePosté le: 27 Mar 2005 11:23    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur
Cazaux-Moutou Philippe
Ancestrologie
Ancestrologie


Inscrit le: 26 Fév 2003
Messages: 781
Localisation: Guadeloupe

MessagePosté le: 28 Mar 2005 12:34    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Index des Archives -> Ancestrologie - Le module SQL tres facilement Toutes les heures sont au format GMT + 2 Heures
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
Sauter vers:  
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


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com