Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/07/2011, 17h54   #1
Invité régulier
 
Inscription : janvier 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 19
Points : 5
Points : 5
Par défaut Sous-requête et regroupement.

Bonjour à tous
Débutant en SQL j'ai un problème avec une requête. Dans une bdd de courses de chevaux j'ai une table "Performances" comportant entre autres les champs Nom, Date, Place, gain et dont je veux extraire certains cumuls.
J'ai donc écrit la requête suivante sensée extraire dans un intervalle d'une année, le nombre de courses courues, le nombre de victoires et le total des sommes gagnées par cheval, avec un regroupement sur le champ "Nom".

J'ai donc écrit:

Code :
1
2
3
4
SELECT DISTINCT Performances.Nom, Sum(Performances.Gain) AS Gains, Count(Performances.Date) AS CoursesCourues, (SELECT Count(Performances.Place) FROM Performances WHERE ((Performances.Place)="1")) AS Victoires
FROM Performances
WHERE (((Performances.Date) Between [Formulaires]![EtudeCourse]![Date_jour] And ([Formulaires]![EtudeCourse]![Date_jour]-365)))
GROUP BY Performances.Nom;
La requête me retourne bien le total des sommes gagnés par cheval, ainsi que le nombre de courses courues, mais en ce qui concerne le nombre de victoires, elle me retourne pour chaque ligne le cumul des victoires de tous les chevaux.

J'ai alors inséré un regroupement dans la ligne de code des victoires:

Code :
1
2
3
....
SELECT Count(Performances.Place) FROM Performances WHERE ((PerformancesCourseJour.Place)="1") GROUP BY Performances.Nom) AS Victoires
....
Mais dans ce cas j'ai un message d'erreur qui dit que ma sous-requête ne peut retourner au plus qu'un seul enregistrement et ne s'exécute pas.

Pouvez-vous m'aider?
Merci
Lanig22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 18h49   #2
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 446
Points : 4 446
bonjour,

Code sql :
... ,Sum(iif(Performances.Place="1",1,0)) AS Victoires

chuis pas sûr de moi là
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 19h01   #3
Invité régulier
 
Inscription : janvier 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 19
Points : 5
Points : 5
Ca marche très bien!!
Merci beaucoup. La solution était simple mais je suis passé à côté
Lanig22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h05.


 
 
 
 
Partenaires

Hébergement Web