Relations tables multiples Access
rastababa
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
blux Messages postés 27136 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27136 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Sur Access 2003, lorsque je lance une requête sur des données chiffrées sur deux tables, j'obtiens des chiffres largement supérieurs à ce qu'ils devraient être.
En gros, j'ai une table avec des codes, et deux tables avec des codes et des données. Lorsque j'exécute une requête en reliant ma table de codes avec mes deux tables de données en même temps, les résultats sont supérieurs à ce qu'ils devraient être, tandis que si je fais une requête pour chaque table de données, les résultats sont cohérents.
Est-il possible d'obtenir des résultats cohérents avec une seule requête ?
Merci de l'aide que vous pourrez m'apporter, en espérant avoir été assez clair dans mon explication :s
Sur Access 2003, lorsque je lance une requête sur des données chiffrées sur deux tables, j'obtiens des chiffres largement supérieurs à ce qu'ils devraient être.
En gros, j'ai une table avec des codes, et deux tables avec des codes et des données. Lorsque j'exécute une requête en reliant ma table de codes avec mes deux tables de données en même temps, les résultats sont supérieurs à ce qu'ils devraient être, tandis que si je fais une requête pour chaque table de données, les résultats sont cohérents.
Est-il possible d'obtenir des résultats cohérents avec une seule requête ?
Merci de l'aide que vous pourrez m'apporter, en espérant avoir été assez clair dans mon explication :s
A voir également:
- Relations tables multiples Access
- Tables des matières word - Guide
- Acer quick access - Forum Logiciels
- Access appdata - Guide
- Exemple base de données access à télécharger gratuit - Forum Access
- Exemple base de données Access de gestion ✓ - Forum Logiciels
2 réponses
Salut,
quand tu dis 'résultats supérieurs', c'est qu'ils sont trop grands ou qu'il y en plus que tu ne l'imaginais.
Si c'est qu'il y a trop de lignes renvoyées, c'est que vraisemblablement, tu effectues un produit cartésien faute d'avoir fait une jointure entre les tables.
Pourrais-tu mettre le texte de la requête afin que l'on vérifie s'il y a des clauses JOIN ?
quand tu dis 'résultats supérieurs', c'est qu'ils sont trop grands ou qu'il y en plus que tu ne l'imaginais.
Si c'est qu'il y a trop de lignes renvoyées, c'est que vraisemblablement, tu effectues un produit cartésien faute d'avoir fait une jointure entre les tables.
Pourrais-tu mettre le texte de la requête afin que l'on vérifie s'il y a des clauses JOIN ?
Salut,
Merci pour ta réponse! Quand je disais des résultats supérieurs, c'était pour dire des chiffres trop grands.
Le texte sql de la requête est le suivant :
SELECT NAF_1_2_secteurs.Code_secteur, Sum(creations_CMNA_naf_rev1.Entreprises_2006) AS SommeDeEntreprises_2006, Sum(creations_CMNA_naf_rev2.Entreprises_2011) AS SommeDeEntreprises_2011
FROM (NAF_1_2_secteurs INNER JOIN creations_CMNA_naf_rev2 ON NAF_1_2_secteurs.CodeNaf2 = creations_CMNA_naf_rev2.CODE_APE) INNER JOIN creations_CMNA_naf_rev1 ON NAF_1_2_secteurs.CodeNaf1 = creations_CMNA_naf_rev1.APE
GROUP BY NAF_1_2_secteurs.Code_secteur;
Merci pour ta réponse! Quand je disais des résultats supérieurs, c'était pour dire des chiffres trop grands.
Le texte sql de la requête est le suivant :
SELECT NAF_1_2_secteurs.Code_secteur, Sum(creations_CMNA_naf_rev1.Entreprises_2006) AS SommeDeEntreprises_2006, Sum(creations_CMNA_naf_rev2.Entreprises_2011) AS SommeDeEntreprises_2011
FROM (NAF_1_2_secteurs INNER JOIN creations_CMNA_naf_rev2 ON NAF_1_2_secteurs.CodeNaf2 = creations_CMNA_naf_rev2.CODE_APE) INNER JOIN creations_CMNA_naf_rev1 ON NAF_1_2_secteurs.CodeNaf1 = creations_CMNA_naf_rev1.APE
GROUP BY NAF_1_2_secteurs.Code_secteur;
Peut-être... mais je ne vois pas comment faire autrement. Étant donné le code et le fait que les relations soient de 1 à plusieurs (1 pour NAF_1_2_secteurs, et plusieurs pour les deux autres), je me dis que les enregistrements doivent se multiplier une première fois avec le INNER JOIN entre parenthèse, puis une deuxième fois avec le 2e INNER JOIN.