Bonjour à tous
je suis à la recherche d'un conseil pour la récupération de donnéés dans
deux tables ayant une relation un à plusieurs.
T_audit : un numauto+ divers champs
T_defaut : un numerique ( num_auto de la T_defaut)
Une relation du type un à plusieurs , pour un audit il peut y avoir
plusieurs defauts.
mon souci est que je cherche à retourner via une requete , le resultat
suivant .
sur une meme ligne je voudrais le num_ auto de l'audit + tous les defauts
qui y sont rattachés.
Mais quand je créér ma requete pour generer des stats sur le nombre d'audits
avec defauts il me retourne des doublons , exemple pour l'audit n°1 j'ai 5
defauts ,
donc quand le lance ma requete je me retrouve avec cinq lignes .
comment est il possible de ne faire écrire qu'une ligne avec tous les
defauts à la place de une ligne pour chaque defauts.
j'espère avoir été le plus clair possible et je vous remercie d'avance pour
tous vos conseils.
Bonne journée
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
Dragan
bonjour Gilou, quels sont les champs que tu souhaites retourner dans ta requête ? en fait combien de champs représentent les défauts ?
"gilou" a écrit :
Bonjour à tous je suis à la recherche d'un conseil pour la récupération de donnéés dans deux tables ayant une relation un à plusieurs.
T_audit : un numauto+ divers champs T_defaut : un numerique ( num_auto de la T_defaut) Une relation du type un à plusieurs , pour un audit il peut y avoir plusieurs defauts.
mon souci est que je cherche à retourner via une requete , le resultat suivant .
sur une meme ligne je voudrais le num_ auto de l'audit + tous les defauts qui y sont rattachés. Mais quand je créér ma requete pour generer des stats sur le nombre d'audits avec defauts il me retourne des doublons , exemple pour l'audit n°1 j'ai 5 defauts , donc quand le lance ma requete je me retrouve avec cinq lignes .
comment est il possible de ne faire écrire qu'une ligne avec tous les defauts à la place de une ligne pour chaque defauts.
j'espère avoir été le plus clair possible et je vous remercie d'avance pour tous vos conseils. Bonne journée
bonjour Gilou, quels sont les champs que tu souhaites retourner dans ta
requête ?
en fait combien de champs représentent les défauts ?
"gilou" a écrit :
Bonjour à tous
je suis à la recherche d'un conseil pour la récupération de donnéés dans
deux tables ayant une relation un à plusieurs.
T_audit : un numauto+ divers champs
T_defaut : un numerique ( num_auto de la T_defaut)
Une relation du type un à plusieurs , pour un audit il peut y avoir
plusieurs defauts.
mon souci est que je cherche à retourner via une requete , le resultat
suivant .
sur une meme ligne je voudrais le num_ auto de l'audit + tous les defauts
qui y sont rattachés.
Mais quand je créér ma requete pour generer des stats sur le nombre d'audits
avec defauts il me retourne des doublons , exemple pour l'audit n°1 j'ai 5
defauts ,
donc quand le lance ma requete je me retrouve avec cinq lignes .
comment est il possible de ne faire écrire qu'une ligne avec tous les
defauts à la place de une ligne pour chaque defauts.
j'espère avoir été le plus clair possible et je vous remercie d'avance pour
tous vos conseils.
Bonne journée
bonjour Gilou, quels sont les champs que tu souhaites retourner dans ta requête ? en fait combien de champs représentent les défauts ?
"gilou" a écrit :
Bonjour à tous je suis à la recherche d'un conseil pour la récupération de donnéés dans deux tables ayant une relation un à plusieurs.
T_audit : un numauto+ divers champs T_defaut : un numerique ( num_auto de la T_defaut) Une relation du type un à plusieurs , pour un audit il peut y avoir plusieurs defauts.
mon souci est que je cherche à retourner via une requete , le resultat suivant .
sur une meme ligne je voudrais le num_ auto de l'audit + tous les defauts qui y sont rattachés. Mais quand je créér ma requete pour generer des stats sur le nombre d'audits avec defauts il me retourne des doublons , exemple pour l'audit n°1 j'ai 5 defauts , donc quand le lance ma requete je me retrouve avec cinq lignes .
comment est il possible de ne faire écrire qu'une ligne avec tous les defauts à la place de une ligne pour chaque defauts.
j'espère avoir été le plus clair possible et je vous remercie d'avance pour tous vos conseils. Bonne journée
Dragan
Pour exemple : si la table T_DEFAUT a une clé primaire et qu'il n'y a qu'un seul champ pour les défauts essaie ça :
Ici j'appelle CLE le nom de la cle primaire de la table T_DEFAUT AUDIT le nom du champ de T_AUDIT présent dans T_DEFAUT DEFAUT le nom de la colonne des défauts de la table T_DEFAUT
TRANSFORM Min(DEFAUT) SELECT AUDIT FROM (requete1) GROUP BY AUDIT PIVOT DEFAUTINDICE;
où requete1 => SELECT T_DEFAUT.AUDIT, "Défaut " & 1+count(B.AUDIT) As DEFAUTINDICE, T_DEFAUT.DEFAUT FROM T_DEFAUT LEFT JOIN T_DEFAUT As B ON B.AUDIT=T_DEFAUT.AUDIT AND B.CLE<T_DEFAUT.CLE GROUP BY _DEFAUT.AUDIT, T_DEFAUT.DEFAUT
Pour exemple :
si la table T_DEFAUT a une clé primaire et qu'il n'y a qu'un seul champ pour
les défauts
essaie ça :
Ici j'appelle CLE le nom de la cle primaire de la table T_DEFAUT
AUDIT le nom du champ de T_AUDIT présent dans T_DEFAUT
DEFAUT le nom de la colonne des défauts de la table T_DEFAUT
TRANSFORM Min(DEFAUT)
SELECT AUDIT FROM (requete1)
GROUP BY AUDIT
PIVOT DEFAUTINDICE;
où requete1 =>
SELECT T_DEFAUT.AUDIT, "Défaut " & 1+count(B.AUDIT) As DEFAUTINDICE,
T_DEFAUT.DEFAUT
FROM T_DEFAUT
LEFT JOIN T_DEFAUT As B ON B.AUDIT=T_DEFAUT.AUDIT AND B.CLE<T_DEFAUT.CLE
GROUP BY _DEFAUT.AUDIT, T_DEFAUT.DEFAUT
Pour exemple : si la table T_DEFAUT a une clé primaire et qu'il n'y a qu'un seul champ pour les défauts essaie ça :
Ici j'appelle CLE le nom de la cle primaire de la table T_DEFAUT AUDIT le nom du champ de T_AUDIT présent dans T_DEFAUT DEFAUT le nom de la colonne des défauts de la table T_DEFAUT
TRANSFORM Min(DEFAUT) SELECT AUDIT FROM (requete1) GROUP BY AUDIT PIVOT DEFAUTINDICE;
où requete1 => SELECT T_DEFAUT.AUDIT, "Défaut " & 1+count(B.AUDIT) As DEFAUTINDICE, T_DEFAUT.DEFAUT FROM T_DEFAUT LEFT JOIN T_DEFAUT As B ON B.AUDIT=T_DEFAUT.AUDIT AND B.CLE<T_DEFAUT.CLE GROUP BY _DEFAUT.AUDIT, T_DEFAUT.DEFAUT
Merci dragan de répondre à mon problème. Pour la table defaut je n'ai pas de cle primaire ,je stock simplement le num_auto de ma table defaut en numerique cela me suffit.
Par contre ma table defaut comporte 2 champ pour identifier les defaut : 1 champ libelle 1 champ caractéristique
Pour ce qui est de ta réponse ,je n'ai pas les connaissances pour interpréter ton code sql , mais je vais essayer de déchiffer en cherchant sur la toile. je construit habituellement mes requetes à l'aide de l'utilitaire access par l'ajout des tables et leurs champs.
Merci encore . Si je coince je reviendrai de nouveau vers vous. Bon vent !
"Dragan" a écrit :
Pour exemple : si la table T_DEFAUT a une clé primaire et qu'il n'y a qu'un seul champ pour les défauts essaie ça :
Ici j'appelle CLE le nom de la cle primaire de la table T_DEFAUT AUDIT le nom du champ de T_AUDIT présent dans T_DEFAUT DEFAUT le nom de la colonne des défauts de la table T_DEFAUT
TRANSFORM Min(DEFAUT) SELECT AUDIT FROM (requete1) GROUP BY AUDIT PIVOT DEFAUTINDICE;
où requete1 => SELECT T_DEFAUT.AUDIT, "Défaut " & 1+count(B.AUDIT) As DEFAUTINDICE, T_DEFAUT.DEFAUT FROM T_DEFAUT LEFT JOIN T_DEFAUT As B ON B.AUDIT=T_DEFAUT.AUDIT AND B.CLE<T_DEFAUT.CLE GROUP BY _DEFAUT.AUDIT, T_DEFAUT.DEFAUT
Merci dragan de répondre à mon problème.
Pour la table defaut je n'ai pas de cle primaire ,je stock simplement le
num_auto de ma table defaut en numerique cela me suffit.
Par contre ma table defaut comporte 2 champ pour identifier les defaut :
1 champ libelle
1 champ caractéristique
Pour ce qui est de ta réponse ,je n'ai pas les connaissances pour
interpréter ton code sql , mais je vais essayer de déchiffer en cherchant sur
la toile.
je construit habituellement mes requetes à l'aide de l'utilitaire access par
l'ajout des tables et leurs champs.
Merci encore .
Si je coince je reviendrai de nouveau vers vous.
Bon vent !
"Dragan" a écrit :
Pour exemple :
si la table T_DEFAUT a une clé primaire et qu'il n'y a qu'un seul champ pour
les défauts
essaie ça :
Ici j'appelle CLE le nom de la cle primaire de la table T_DEFAUT
AUDIT le nom du champ de T_AUDIT présent dans T_DEFAUT
DEFAUT le nom de la colonne des défauts de la table T_DEFAUT
TRANSFORM Min(DEFAUT)
SELECT AUDIT FROM (requete1)
GROUP BY AUDIT
PIVOT DEFAUTINDICE;
où requete1 =>
SELECT T_DEFAUT.AUDIT, "Défaut " & 1+count(B.AUDIT) As DEFAUTINDICE,
T_DEFAUT.DEFAUT
FROM T_DEFAUT
LEFT JOIN T_DEFAUT As B ON B.AUDIT=T_DEFAUT.AUDIT AND B.CLE<T_DEFAUT.CLE
GROUP BY _DEFAUT.AUDIT, T_DEFAUT.DEFAUT
Merci dragan de répondre à mon problème. Pour la table defaut je n'ai pas de cle primaire ,je stock simplement le num_auto de ma table defaut en numerique cela me suffit.
Par contre ma table defaut comporte 2 champ pour identifier les defaut : 1 champ libelle 1 champ caractéristique
Pour ce qui est de ta réponse ,je n'ai pas les connaissances pour interpréter ton code sql , mais je vais essayer de déchiffer en cherchant sur la toile. je construit habituellement mes requetes à l'aide de l'utilitaire access par l'ajout des tables et leurs champs.
Merci encore . Si je coince je reviendrai de nouveau vers vous. Bon vent !
"Dragan" a écrit :
Pour exemple : si la table T_DEFAUT a une clé primaire et qu'il n'y a qu'un seul champ pour les défauts essaie ça :
Ici j'appelle CLE le nom de la cle primaire de la table T_DEFAUT AUDIT le nom du champ de T_AUDIT présent dans T_DEFAUT DEFAUT le nom de la colonne des défauts de la table T_DEFAUT
TRANSFORM Min(DEFAUT) SELECT AUDIT FROM (requete1) GROUP BY AUDIT PIVOT DEFAUTINDICE;
où requete1 => SELECT T_DEFAUT.AUDIT, "Défaut " & 1+count(B.AUDIT) As DEFAUTINDICE, T_DEFAUT.DEFAUT FROM T_DEFAUT LEFT JOIN T_DEFAUT As B ON B.AUDIT=T_DEFAUT.AUDIT AND B.CLE<T_DEFAUT.CLE GROUP BY _DEFAUT.AUDIT, T_DEFAUT.DEFAUT
ok, en fait quand tu crées une requete tu peux taper le code SQL en cliquant sur "SQL" du menu. Nouvelle Requete - Mode Création - Fermer la boite de dialogue de choix des tables - Clique SQL dans le menu. puis tu écris ceci pour tester: remplace caracteristique, numauto et Libelle par les noms correctes de la table.
TRANSFORM Min(caracteristique) SELECT numauto FROM T_DEFAUT GROUP BY numauto PIVOT Libelle;
les requetes PIVOT transforme une table de y lignes en une table de y colonnes. En clair, lorsque tu obtiens 5 lignes de défaut pour un audit, tu auras une ligne de 6 colonnes. Une colonne pour le champ du numauto et 5 colonnes pour les libelles des defauts.
ok, en fait quand tu crées une requete tu peux taper le code SQL en cliquant
sur "SQL" du menu. Nouvelle Requete - Mode Création - Fermer la boite de
dialogue de choix des tables - Clique SQL dans le menu.
puis tu écris ceci pour tester: remplace caracteristique, numauto et
Libelle par les noms correctes de la table.
TRANSFORM Min(caracteristique)
SELECT numauto FROM T_DEFAUT
GROUP BY numauto
PIVOT Libelle;
les requetes PIVOT transforme une table de y lignes en une table de y
colonnes.
En clair, lorsque tu obtiens 5 lignes de défaut pour un audit, tu auras une
ligne de 6 colonnes. Une colonne pour le champ du numauto et 5 colonnes pour
les libelles des defauts.
ok, en fait quand tu crées une requete tu peux taper le code SQL en cliquant sur "SQL" du menu. Nouvelle Requete - Mode Création - Fermer la boite de dialogue de choix des tables - Clique SQL dans le menu. puis tu écris ceci pour tester: remplace caracteristique, numauto et Libelle par les noms correctes de la table.
TRANSFORM Min(caracteristique) SELECT numauto FROM T_DEFAUT GROUP BY numauto PIVOT Libelle;
les requetes PIVOT transforme une table de y lignes en une table de y colonnes. En clair, lorsque tu obtiens 5 lignes de défaut pour un audit, tu auras une ligne de 6 colonnes. Une colonne pour le champ du numauto et 5 colonnes pour les libelles des defauts.