Une requete qui fournit trop de resultat [Access] - SQL/NoSQL - Programmation
Marsh Posté le 11-05-2004 à 15:25:16
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.
Il lui arrive même de la rajouter tout seul...
Marsh Posté le 11-05-2004 à 15:38:50
Je pourrais te dire que je sais pourquoi mais ce serait mentir....
On se fait un bowling Duc???
Marsh Posté le 11-05-2004 à 15:39:53
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 ?
Marsh Posté le 11-05-2004 à 15:50:01
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é).
Marsh Posté le 11-05-2004 à 15:53:35
T'as de la chance Duc, j'en ai justement une sous la main...
Le temps de changer les noms et la voila:
Code :
|
Marsh Posté le 11-05-2004 à 15:57:06
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). |
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!!!
Marsh Posté le 11-05-2004 à 15:57:59
Vous etes des anges, me voila pret a faire croire au mec derriere moi que j'ai bosse
Marsh Posté le 11-05-2004 à 16:02:22
J'avoue, les Base de Do c'est pas mon kif
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.
Marsh Posté le 11-05-2004 à 16:24:26
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.
Marsh Posté le 11-05-2004 à 16:46:11
Si employee.ID et PERIOD.ID sont les clés primaires de leurs tables respectives, ca doit passer!!!
Marsh Posté le 11-05-2004 à 21:13:26
lebowski a écrit : Si je balance ca dans Access : |
même sans DISTINCTROW
Marsh Posté le 12-05-2004 à 09:24:49
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...
Marsh Posté le 12-05-2004 à 15:54:11
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.
Marsh Posté le 11-05-2004 à 14:46:32
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