Relations tables multiples Access

Fermé
rastababa Messages postés 21 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 25 janvier 2013 - 18 juin 2012 à 14:08
blux Messages postés 26798 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2025 - 20 juin 2012 à 10:15
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

A voir également:

2 réponses

blux Messages postés 26798 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2025 3 335
18 juin 2012 à 15:59
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 ?
0
rastababa Messages postés 21 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 25 janvier 2013
18 juin 2012 à 17:38
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;
0
blux Messages postés 26798 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2025 3 335
19 juin 2012 à 10:19
Ta requête contient un SUM, il y a de fortes chances qu'une jointure manque, conduisant à une augmentation des données prises en compte...
0
rastababa Messages postés 21 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 25 janvier 2013
19 juin 2012 à 14:24
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.
0
blux Messages postés 26798 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2025 3 335
20 juin 2012 à 10:15
Il faudrait faire la requête sans le sum et le group by, pour voir à quel moment le nombre de lignes explose...
0

Discussions similaires