Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2982 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access] Une requete qui fournit trop de resultat

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Access] Une requete qui fournit trop de resultat

n°721956
lebowski
Posté le 11-05-2004 à 14:46:32  profilanswer
 

Bonjour,
 
(desole pour les accents, c'est un clavier qwerty)
 
Je vous presente vite fait le probleme. Je travaille sur une table qui fait environ 22000 lignes. Dans une des colonnes, les categories socio-professionnelles des personnes de l'entreprise, ou je suis actuellement, sont representees par des nombres (au format Text). J'ai cree une requete qui devrait m'afficher la categorie 7, par exemple, ce qui donne ceci en requete sql : (le tableau s'appelle PERIOD)
SELECT PERIOD.PROFESSION
FROM employee, PERIOD
WHERE (((PERIOD.PROFESSION) Like "*7" ));
 
Quand je teste la requete, il apparait environ 100000 reponses, et la... c'est le drame. :??:  
 
Quoi qu'j'ai fait (ou pas fait d'ailleurs) qui pourrait faire apparaitre un resultat comme celui-ci ?
 
D'avance merki,
 
Lebowski

mood
Publicité
Posté le 11-05-2004 à 14:46:32  profilanswer
 

n°721999
strawfield
Pourquoi k'ca marche pas???
Posté le 11-05-2004 à 15:25:16  profilanswer
 

Essaye de rajouter DISTINCTROW après le select...
 
Sur des requêtes ou a priori il ne sert à rien, Access m'a déjà fait des coups tordus dans le genre quand je l'enlève. :pt1cable:  :kaola:  :pt1cable:  
 
Il lui arrive même de la rajouter tout seul...


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
n°722011
lebowski
Posté le 11-05-2004 à 15:34:41  profilanswer
 

Daron ! Ca marche.
Merki bien.

n°722014
strawfield
Pourquoi k'ca marche pas???
Posté le 11-05-2004 à 15:38:50  profilanswer
 

Je pourrais te dire que je sais pourquoi mais ce serait mentir.... :non:  
 
On se fait un bowling Duc???


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
n°722016
lebowski
Posté le 11-05-2004 à 15:39:53  profilanswer
 

En fait, j'ai une autre question : comment faire pour effectuer une requete sur deux tables differentes ? En gros : J'ai une table avec la liste des employes et le numero qui leur correspond, et sur l'autre grace au numero nous connaissons d'autres informations (on va dire leur age pour simplifier). Comment faire pour afficher le nom, l'ID, et l'age de chacun avec une meme requete ?

n°722025
latruffe
Bdovore
Posté le 11-05-2004 à 15:50:01  profilanswer
 

Tout le problème est là : tu as mis deux tables dans ta clause FROM sans déclarer de quelle manière elles sont liées : la requete te renvoie toutes les combinaisons possible (soit le nb employé * le nb de period.profession = 7).
 
Le distintrow marche mais surcharge inutilement la query (c'est pas propre en résumé).


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°722032
strawfield
Pourquoi k'ca marche pas???
Posté le 11-05-2004 à 15:53:35  profilanswer
 

T'as de la chance Duc, j'en ai justement une sous la main...
 
Le temps de changer les noms et la voila:

Code :
  1. SELECT DISTINCTROW
  2. employes.nom
  3. employes.id
  4. renseignements.age
  5. FROM employes, renseignements
  6. WHERE (([employes].[id]=[renseignements].[id])  AND autres conditions.....)
  7. ORDER BY [employes].[nom];


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
n°722041
lebowski
Posté le 11-05-2004 à 15:56:55  profilanswer
 

Ok Walter, sors ton 45 (Ta gueule Donnie)

n°722043
strawfield
Pourquoi k'ca marche pas???
Posté le 11-05-2004 à 15:57:06  profilanswer
 

latruffe a écrit :

Tout le problème est là : tu as mis deux tables dans ta clause FROM sans déclarer de quelle manière elles sont liées : la requete te renvoie toutes les combinaisons possible (soit le nb employé * le nb de period.profession = 7).
 
Le distintrow marche mais surcharge inutilement la query (c'est pas propre en résumé).


 
Il m'est déjà arrivé k'ca marche pas même avec un code "propre"...
 
Je n'ai pas tilté car j'ai pensé qu'il avait oublié ca en simplifiant sa requête pour nous la donner!!!
 


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
n°722044
lebowski
Posté le 11-05-2004 à 15:57:59  profilanswer
 

Vous etes des anges, me voila pret a faire croire au mec derriere moi que j'ai bosse

mood
Publicité
Posté le 11-05-2004 à 15:57:59  profilanswer
 

n°722053
lebowski
Posté le 11-05-2004 à 16:02:22  profilanswer
 

J'avoue, les Base de Do c'est pas mon kif :p
Bon, j'eus pu reflechir un peu avant de balancer le code, mais la journee entiere devant l'ordi, faut pas trop trop m'en demander, sinon scouic.

n°722114
lebowski
Posté le 11-05-2004 à 16:24:26  profilanswer
 

Si je balance ca dans Access :
 
SELECT DISTINCTROW  
employee.LAST_NAME,  
employee.FIRST_NAME,  
employee.ID,  
PERIOD.ID,  
PERIOD.PROFESSION
 
FROM employee, PERIOD
 
WHERE (((employee.ID) = (PERIOD.ID)));
 
 
Est-ce que cela me permettra de voir sans doublons la profession de chaque personne ? (si vous avez compris mon exemple)
 
Merki.
 
PS : Viendez bosser un peu en Roumanie, c'est le panard.

n°722165
strawfield
Pourquoi k'ca marche pas???
Posté le 11-05-2004 à 16:46:11  profilanswer
 

Si employee.ID et PERIOD.ID sont les clés primaires de leurs tables respectives, ca doit passer!!! :sol:  


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
n°722502
latruffe
Bdovore
Posté le 11-05-2004 à 21:13:26  profilanswer
 

lebowski a écrit :

Si je balance ca dans Access :
 
SELECT DISTINCTROW  
employee.LAST_NAME,  
employee.FIRST_NAME,  
employee.ID,  
PERIOD.ID,  
PERIOD.PROFESSION
 
FROM employee, PERIOD
 
WHERE (((employee.ID) = (PERIOD.ID)));
 
 
Est-ce que cela me permettra de voir sans doublons la profession de chaque personne ? (si vous avez compris mon exemple)
 
Merki.
 
PS : Viendez bosser un peu en Roumanie, c'est le panard.


 
même sans DISTINCTROW

n°722782
lebowski
Posté le 12-05-2004 à 09:24:49  profilanswer
 

Par rapport aux cles primaires, quand j'ouvre les tables il n'y a pas de cle primaire de definies (ne me demandez pas pourquoi). Ce sont des tables au format .dbf, peut-etre cela a-t-il un lien...

n°723435
latruffe
Bdovore
Posté le 12-05-2004 à 15:54:11  profilanswer
 

lebowski a écrit :

Par rapport aux cles primaires, quand j'ouvre les tables il n'y a pas de cle primaire de definies (ne me demandez pas pourquoi). Ce sont des tables au format .dbf, peut-etre cela a-t-il un lien...


 
Je pense que dans ton cas, employe.id et period.id sont les clés primaire.
 
Rien ne t'empèche de les passer en clés primaires dans les propriétés de la table pour t'assurer qu'il n'y a pas de duplica.


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access] Une requete qui fournit trop de resultat

 

Sujets relatifs
[access/vba] boite de dialogue avec des boutons radio à l'intérieurlaiason excel Access
ACCESS[ACCESS] Conflit d'écriture ACCESS <-> ORACLE
[ACCESS] Recherche BDD access tres simple avec formulaire[ Access/MySql ] Migration des données
[access] [mac] accessibilite [resolu]MySQL: problème avec une requête multitable
suppression en vba pour access[MYSQL] prob bizarre ma requete ne me renvoi que le premier résultat
Plus de sujets relatifs à : [Access] Une requete qui fournit trop de resultat


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR