[Access 2003] Problème Requête
marçoin4733
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
marçoin4733 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
marçoin4733 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis étudiant en BTS au Lycée gustave eiffel.
Lors d'un cours de dev, un problème est survenu lors du résultat d'une requete.
Ce résultat ne correspondait pas à celui attendu par le professeur.
voici la table sur laquelle s'execute la requete
exemples de la table :
http://img201.imageshack.us/img201/8754/tableia9.th.jpg
mauvais résultat
http://img300.imageshack.us/img300/8391/mauvaisdj8.th.jpg
bon résultat
http://img257.imageshack.us/img257/6808/boncf8.th.jpg
CREATE TABLE SALARIE
(NumSalarie INT CONSTRAINT clefprimaire PRIMARY KEY,
NomSalarie VARCHAR(22),
Salaire CHAR(22));
voici la requete
SELECT COUNT(*) AS Rang, S1.Salaire AS MontantSalaire
FROM SALARIE AS S1, SALARIE AS S2
WHERE S1.Salaire<S2.Salaire
GROUP BY S1.Salaire
HAVING COUNT(*)<=3
ORDER BY S1.Salaire DESC;
le resultat à obtenir grace à cette requete est les trois premiers salaires de cette table
le problème est que le premier salaire est "zappé" , c'est à dire que le résultat nous affiche les deuxième, troisième et quatrième plus gros salaire.
un élève a créé cette table differement
la voici
CREATE TABLE SALARIE
(NumSalarie INTEGER CONSTRAINT clefPrimaire PRIMARY KEY,
NomSalarie CHAR(20),
Salaire CHAR(20));
voici sa requete
SELECT COUNT (*) AS Rang, S1.SALAIRE AS MontantSalaire
FROM SALAIRE AS S1, SALAIRE AS S2
WHERE S1.SALAIRE < S2.SALAIRE
GROUP BY S1.SALAIRE
HAVING COUNT (*) <= 3
ORDER BY S1.SALAIRE DESC;
le changement outre le nom de la table est le type de l'attribut salaire qui cette fois-ci est en CHAR ( pas en INT comme dans la première )
et cette requete affiche le bon résultat
question posé par le professeur
pourquoi le résultat n'est pas le bon sur la première requete et est correct sur la deuxième ? ( on ne pense pas que c'est à cause du type de l'attribut salaire )
je suis étudiant en BTS au Lycée gustave eiffel.
Lors d'un cours de dev, un problème est survenu lors du résultat d'une requete.
Ce résultat ne correspondait pas à celui attendu par le professeur.
voici la table sur laquelle s'execute la requete
exemples de la table :
http://img201.imageshack.us/img201/8754/tableia9.th.jpg
mauvais résultat
http://img300.imageshack.us/img300/8391/mauvaisdj8.th.jpg
bon résultat
http://img257.imageshack.us/img257/6808/boncf8.th.jpg
CREATE TABLE SALARIE
(NumSalarie INT CONSTRAINT clefprimaire PRIMARY KEY,
NomSalarie VARCHAR(22),
Salaire CHAR(22));
voici la requete
SELECT COUNT(*) AS Rang, S1.Salaire AS MontantSalaire
FROM SALARIE AS S1, SALARIE AS S2
WHERE S1.Salaire<S2.Salaire
GROUP BY S1.Salaire
HAVING COUNT(*)<=3
ORDER BY S1.Salaire DESC;
le resultat à obtenir grace à cette requete est les trois premiers salaires de cette table
le problème est que le premier salaire est "zappé" , c'est à dire que le résultat nous affiche les deuxième, troisième et quatrième plus gros salaire.
un élève a créé cette table differement
la voici
CREATE TABLE SALARIE
(NumSalarie INTEGER CONSTRAINT clefPrimaire PRIMARY KEY,
NomSalarie CHAR(20),
Salaire CHAR(20));
voici sa requete
SELECT COUNT (*) AS Rang, S1.SALAIRE AS MontantSalaire
FROM SALAIRE AS S1, SALAIRE AS S2
WHERE S1.SALAIRE < S2.SALAIRE
GROUP BY S1.SALAIRE
HAVING COUNT (*) <= 3
ORDER BY S1.SALAIRE DESC;
le changement outre le nom de la table est le type de l'attribut salaire qui cette fois-ci est en CHAR ( pas en INT comme dans la première )
et cette requete affiche le bon résultat
question posé par le professeur
pourquoi le résultat n'est pas le bon sur la première requete et est correct sur la deuxième ? ( on ne pense pas que c'est à cause du type de l'attribut salaire )
A voir également:
- [Access 2003] Problème Requête
- Office 2003 - Télécharger - Bureautique
- 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
merci pour avoir prêter attention à notre problème.
j'ai mal posé ma question ! oublions la deuxième table avec sa requete
je reformule donc ma question :
comment se fait-il que l'on arrive pas à avoir un bon résultat avec la première requete ?
( CREATE TABLE SALARIE
(NumSalarie INT CONSTRAINT clefprimaire PRIMARY KEY,
NomSalarie VARCHAR(22),
Salaire CHAR(22));
voici la requete
SELECT COUNT(*) AS Rang, S1.Salaire AS MontantSalaire
FROM SALARIE AS S1, SALARIE AS S2
WHERE S1.Salaire<S2.Salaire
GROUP BY S1.Salaire
HAVING COUNT(*)<=3
ORDER BY S1.Salaire DESC;
le resultat à obtenir grace à cette requete est les trois premiers salaires de cette table
le problème est que le premier salaire est "zappé" , c'est à dire que le résultat nous affiche les deuxième, troisième et quatrième plus gros salaire. )
merci d'avance pour ceux qui vont tenter de nous aider
j'ai mal posé ma question ! oublions la deuxième table avec sa requete
je reformule donc ma question :
comment se fait-il que l'on arrive pas à avoir un bon résultat avec la première requete ?
( CREATE TABLE SALARIE
(NumSalarie INT CONSTRAINT clefprimaire PRIMARY KEY,
NomSalarie VARCHAR(22),
Salaire CHAR(22));
voici la requete
SELECT COUNT(*) AS Rang, S1.Salaire AS MontantSalaire
FROM SALARIE AS S1, SALARIE AS S2
WHERE S1.Salaire<S2.Salaire
GROUP BY S1.Salaire
HAVING COUNT(*)<=3
ORDER BY S1.Salaire DESC;
le resultat à obtenir grace à cette requete est les trois premiers salaires de cette table
le problème est que le premier salaire est "zappé" , c'est à dire que le résultat nous affiche les deuxième, troisième et quatrième plus gros salaire. )
merci d'avance pour ceux qui vont tenter de nous aider