J'ai un petit problème avec une requête et j'aurais besoin de vos précieux
conseils pour trouver la solution. J'ai une BD qui me sert pour la gestion
de contact dans laquelle je dois effectuer une requête. Je vais vous donner
la structure de mes tables pour être plus explicite.
Table_contact
con_id 'clé primaire
con_prenom 'prénom du contact
con_nom 'nom du contact
Table_telephone
tel_id 'clé primaire
tel_con_id 'clé étrangère relié à Table_contact
tel_numero 'numéro de téléphone du conatct
tel_typ 'type de téléphone du contact (exemple résidence
ou encore cellulaire, etc.)
Table_courriel
cour_id 'clé primaire
cour_con_id 'clé étrangère relié à Table_contact
cour_adresse 'adresse email du contact
Donc ma requête doit s'effectué sur ces 3 tables. Comme de raison un
contact peut avoir plus d'un numéro de téléphone et plus d'une adresse
email. Par contre il est aussi possible qu'il n'ait ni un ni l'autre, mais
seulement une adresse postal qui est conservé dans une autre table, dont je
n'ai pas besoin pour cette requête.
Donc le résultat que je souhaite obtenir est d'afficher chacun des contacts
avec le premier numéro de téléphone inscrit et la première adresse email
inscrite(s'il en possède, sinon seulement le prénom et le nom).
Voici donc ce que j'ai fait jusqu'à présent.
SELECT a.con_id, a.con_prenom, a.con_nom, b.tel_numero, c.cour_adresse
FROM (contact AS a LEFT OUTER JOIN telephone AS b ON b.tel_con_id=a.con_id )
LEFT OUTER JOIN courriel AS c ON c.cour_con_id=a.con_id
Cette requête me donne évidemment tous les contacts avec tous les numéros de
téléphone et toutes les adresses email. Donc ma question est "Comment
dois-je procéder à partir de cette requête pour afficher une seule fois
chaque contact avec le premier numéro de téléphone (s'il en possède plus
d'un) ou s'il n'en possède pas laisser le champ vide et faire la même chose
pour les adresses email ?"
Merci à l'avance pour ceux qui me donneront une piste de solution à ce
problème.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre CFI [mvp]
bonjour pas evident à expliquer, je pense que si ta base une fois compactée et zippée n'est pas trop grosse, envoie la moi, je te ferais (ou essaierais) de te faire çà enléve xxx_ à mon adresse
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer http://users.skynet.be/mpfa/ Site perso http://access.cfi.free.fr "Denis P" a écrit dans le message de news:
Bonjour,
J'ai un petit problème avec une requête et j'aurais besoin de vos précieux conseils pour trouver la solution. J'ai une BD qui me sert pour la gestion de contact dans laquelle je dois effectuer une requête. Je vais vous donner la structure de mes tables pour être plus explicite.
Table_contact con_id 'clé primaire con_prenom 'prénom du contact con_nom 'nom du contact
Table_telephone tel_id 'clé primaire tel_con_id 'clé étrangère relié à Table_contact tel_numero 'numéro de téléphone du conatct tel_typ 'type de téléphone du contact (exemple résidence ou encore cellulaire, etc.)
Table_courriel cour_id 'clé primaire cour_con_id 'clé étrangère relié à Table_contact cour_adresse 'adresse email du contact
Donc ma requête doit s'effectué sur ces 3 tables. Comme de raison un contact peut avoir plus d'un numéro de téléphone et plus d'une adresse email. Par contre il est aussi possible qu'il n'ait ni un ni l'autre, mais seulement une adresse postal qui est conservé dans une autre table, dont je n'ai pas besoin pour cette requête.
Donc le résultat que je souhaite obtenir est d'afficher chacun des contacts avec le premier numéro de téléphone inscrit et la première adresse email inscrite(s'il en possède, sinon seulement le prénom et le nom).
Voici donc ce que j'ai fait jusqu'à présent.
SELECT a.con_id, a.con_prenom, a.con_nom, b.tel_numero, c.cour_adresse FROM (contact AS a LEFT OUTER JOIN telephone AS b ON b.tel_con_id=a.con_id ) LEFT OUTER JOIN courriel AS c ON c.cour_con_id=a.con_id
Cette requête me donne évidemment tous les contacts avec tous les numéros de téléphone et toutes les adresses email. Donc ma question est "Comment dois-je procéder à partir de cette requête pour afficher une seule fois chaque contact avec le premier numéro de téléphone (s'il en possède plus d'un) ou s'il n'en possède pas laisser le champ vide et faire la même chose pour les adresses email ?"
Merci à l'avance pour ceux qui me donneront une piste de solution à ce problème.
Denis P.
bonjour
pas evident à expliquer, je pense que si ta base une fois compactée et zippée n'est pas trop grosse, envoie la moi, je te ferais (ou
essaierais) de te faire çà
enléve xxx_ à mon adresse
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Denis P" <denispronovostNospam@sympatico.ca> a écrit dans le message de news:udkCEHvIEHA.3128@TK2MSFTNGP10.phx.gbl...
Bonjour,
J'ai un petit problème avec une requête et j'aurais besoin de vos précieux
conseils pour trouver la solution. J'ai une BD qui me sert pour la gestion
de contact dans laquelle je dois effectuer une requête. Je vais vous donner
la structure de mes tables pour être plus explicite.
Table_contact
con_id 'clé primaire
con_prenom 'prénom du contact
con_nom 'nom du contact
Table_telephone
tel_id 'clé primaire
tel_con_id 'clé étrangère relié à Table_contact
tel_numero 'numéro de téléphone du conatct
tel_typ 'type de téléphone du contact (exemple résidence
ou encore cellulaire, etc.)
Table_courriel
cour_id 'clé primaire
cour_con_id 'clé étrangère relié à Table_contact
cour_adresse 'adresse email du contact
Donc ma requête doit s'effectué sur ces 3 tables. Comme de raison un
contact peut avoir plus d'un numéro de téléphone et plus d'une adresse
email. Par contre il est aussi possible qu'il n'ait ni un ni l'autre, mais
seulement une adresse postal qui est conservé dans une autre table, dont je
n'ai pas besoin pour cette requête.
Donc le résultat que je souhaite obtenir est d'afficher chacun des contacts
avec le premier numéro de téléphone inscrit et la première adresse email
inscrite(s'il en possède, sinon seulement le prénom et le nom).
Voici donc ce que j'ai fait jusqu'à présent.
SELECT a.con_id, a.con_prenom, a.con_nom, b.tel_numero, c.cour_adresse
FROM (contact AS a LEFT OUTER JOIN telephone AS b ON b.tel_con_id=a.con_id )
LEFT OUTER JOIN courriel AS c ON c.cour_con_id=a.con_id
Cette requête me donne évidemment tous les contacts avec tous les numéros de
téléphone et toutes les adresses email. Donc ma question est "Comment
dois-je procéder à partir de cette requête pour afficher une seule fois
chaque contact avec le premier numéro de téléphone (s'il en possède plus
d'un) ou s'il n'en possède pas laisser le champ vide et faire la même chose
pour les adresses email ?"
Merci à l'avance pour ceux qui me donneront une piste de solution à ce
problème.
bonjour pas evident à expliquer, je pense que si ta base une fois compactée et zippée n'est pas trop grosse, envoie la moi, je te ferais (ou essaierais) de te faire çà enléve xxx_ à mon adresse
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer http://users.skynet.be/mpfa/ Site perso http://access.cfi.free.fr "Denis P" a écrit dans le message de news:
Bonjour,
J'ai un petit problème avec une requête et j'aurais besoin de vos précieux conseils pour trouver la solution. J'ai une BD qui me sert pour la gestion de contact dans laquelle je dois effectuer une requête. Je vais vous donner la structure de mes tables pour être plus explicite.
Table_contact con_id 'clé primaire con_prenom 'prénom du contact con_nom 'nom du contact
Table_telephone tel_id 'clé primaire tel_con_id 'clé étrangère relié à Table_contact tel_numero 'numéro de téléphone du conatct tel_typ 'type de téléphone du contact (exemple résidence ou encore cellulaire, etc.)
Table_courriel cour_id 'clé primaire cour_con_id 'clé étrangère relié à Table_contact cour_adresse 'adresse email du contact
Donc ma requête doit s'effectué sur ces 3 tables. Comme de raison un contact peut avoir plus d'un numéro de téléphone et plus d'une adresse email. Par contre il est aussi possible qu'il n'ait ni un ni l'autre, mais seulement une adresse postal qui est conservé dans une autre table, dont je n'ai pas besoin pour cette requête.
Donc le résultat que je souhaite obtenir est d'afficher chacun des contacts avec le premier numéro de téléphone inscrit et la première adresse email inscrite(s'il en possède, sinon seulement le prénom et le nom).
Voici donc ce que j'ai fait jusqu'à présent.
SELECT a.con_id, a.con_prenom, a.con_nom, b.tel_numero, c.cour_adresse FROM (contact AS a LEFT OUTER JOIN telephone AS b ON b.tel_con_id=a.con_id ) LEFT OUTER JOIN courriel AS c ON c.cour_con_id=a.con_id
Cette requête me donne évidemment tous les contacts avec tous les numéros de téléphone et toutes les adresses email. Donc ma question est "Comment dois-je procéder à partir de cette requête pour afficher une seule fois chaque contact avec le premier numéro de téléphone (s'il en possède plus d'un) ou s'il n'en possède pas laisser le champ vide et faire la même chose pour les adresses email ?"
Merci à l'avance pour ceux qui me donneront une piste de solution à ce problème.
Denis P.
NoMail
Denis P a ecrit, Le 15/04/2004 15:58 :
Bonjour,
Denis P.
Par rapport à ta demande j'ai changé le nom de la clé etrangère :
Table_contact con_id 'clé primaire con_prenom 'prénom du contact con_nom 'nom du contact
Table_telephone tel_id 'clé primaire con_id 'clé étrangère relié à Table_contact tel_numero 'numéro de téléphone du conatct tel_typ 'type de téléphone du contact (exemple résidence ou encore cellulaire, etc.)
Table_courriel cour_id 'clé primaire con_id 'clé étrangère relié à Table_contact cour_adresse 'adresse email du contact
essai ça : requete final : SELECT First(CON.con_prenom) AS PremierDecon_prenom, First(CON.con_nom) AS PremierDecon_nom, First(R_MAIL.cour_adresse) AS PremierDecour_adresse, First(R_TEL.tel_numero) AS PremierDetel_numero, First(R_TEL.tel_type) AS PremierDetel_type FROM R_TEL RIGHT JOIN (R_MAIL RIGHT JOIN CON ON R_MAIL.con_id = CON.con_id) ON R_TEL.con_id = CON.con_id GROUP BY CON.con_id;
R_TEL : SELECT TEL.tel_numero, TEL.tel_type, CON.con_id FROM TEL RIGHT JOIN CON ON TEL.con_id = CON.con_id WHERE (((TEL.tel_numero) Is Not Null));
R_MAIL : SELECT COUR.cour_adresse, CON.con_id FROM CON LEFT JOIN COUR ON CON.con_id = COUR.con_id WHERE (((COUR.cour_adresse) Is Not Null));
Denis P a ecrit, Le 15/04/2004 15:58 :
Bonjour,
Denis P.
Par rapport à ta demande j'ai changé le nom de la clé etrangère :
Table_contact
con_id 'clé primaire
con_prenom 'prénom du contact
con_nom 'nom du contact
Table_telephone
tel_id 'clé primaire
con_id 'clé étrangère relié à Table_contact
tel_numero 'numéro de téléphone du conatct
tel_typ 'type de téléphone du contact (exemple résidence
ou encore cellulaire, etc.)
Table_courriel
cour_id 'clé primaire
con_id 'clé étrangère relié à Table_contact
cour_adresse 'adresse email du contact
essai ça :
requete final :
SELECT
First(CON.con_prenom) AS PremierDecon_prenom,
First(CON.con_nom) AS PremierDecon_nom,
First(R_MAIL.cour_adresse) AS PremierDecour_adresse,
First(R_TEL.tel_numero) AS PremierDetel_numero,
First(R_TEL.tel_type) AS PremierDetel_type
FROM
R_TEL RIGHT JOIN (R_MAIL RIGHT JOIN CON ON R_MAIL.con_id = CON.con_id)
ON R_TEL.con_id = CON.con_id
GROUP BY CON.con_id;
R_TEL :
SELECT TEL.tel_numero, TEL.tel_type, CON.con_id
FROM TEL RIGHT JOIN CON ON TEL.con_id = CON.con_id
WHERE (((TEL.tel_numero) Is Not Null));
R_MAIL :
SELECT COUR.cour_adresse, CON.con_id
FROM CON LEFT JOIN COUR ON CON.con_id = COUR.con_id
WHERE (((COUR.cour_adresse) Is Not Null));
Par rapport à ta demande j'ai changé le nom de la clé etrangère :
Table_contact con_id 'clé primaire con_prenom 'prénom du contact con_nom 'nom du contact
Table_telephone tel_id 'clé primaire con_id 'clé étrangère relié à Table_contact tel_numero 'numéro de téléphone du conatct tel_typ 'type de téléphone du contact (exemple résidence ou encore cellulaire, etc.)
Table_courriel cour_id 'clé primaire con_id 'clé étrangère relié à Table_contact cour_adresse 'adresse email du contact
essai ça : requete final : SELECT First(CON.con_prenom) AS PremierDecon_prenom, First(CON.con_nom) AS PremierDecon_nom, First(R_MAIL.cour_adresse) AS PremierDecour_adresse, First(R_TEL.tel_numero) AS PremierDetel_numero, First(R_TEL.tel_type) AS PremierDetel_type FROM R_TEL RIGHT JOIN (R_MAIL RIGHT JOIN CON ON R_MAIL.con_id = CON.con_id) ON R_TEL.con_id = CON.con_id GROUP BY CON.con_id;
R_TEL : SELECT TEL.tel_numero, TEL.tel_type, CON.con_id FROM TEL RIGHT JOIN CON ON TEL.con_id = CON.con_id WHERE (((TEL.tel_numero) Is Not Null));
R_MAIL : SELECT COUR.cour_adresse, CON.con_id FROM CON LEFT JOIN COUR ON CON.con_id = COUR.con_id WHERE (((COUR.cour_adresse) Is Not Null));