hoquei44
Messages postés16020Date d'inscriptiondimanche 19 janvier 2014StatutMembreDernière intervention19 avril 2024
-
Modifié le 29 juil. 2017 à 13:45
hoquei44
Messages postés16020Date d'inscriptiondimanche 19 janvier 2014StatutMembreDernière intervention19 avril 2024
-
31 juil. 2017 à 13:02
Le Num_Licence sert de clé primaire pour la table Licencié.
Mon objectif est de réaliser une requête permettant d'obtenir un tableau avec le nombre de licenciés par saison et par club.
Par simplification, je définis la saison comme étant l'année de Licence.Fin.
J'ai alors réalisé la requête suivante :
TRANSFORM Count(*) AS MaTable
SELECT Licence.Club AS Club
FROM Licencié, Licence
WHERE Licencié.Num_Licence=Licence.Num_Licence
GROUP BY Licence.Club
ORDER BY Licence.Club
PIVOT year(Licence.fin);
Elle fonctionne presque bien. Le problème est qu'elle compte à plusieurs reprises un licencié ayant pris plusieurs licences la même année dans le même club.
Pour moi, un licencié ne doit avoir qu'une seule licence par club et par saison. Cependant, il peut arriver qu'il ait plusieurs licences dans une même saison, mais dans des clubs différents.
Je ne parviens pas à créer la requête permettant de pallier mon soucis.
Il ne faut pas qu'un licencié soit compté en doublon dans un même effectif (=liste des licenciés d'une saison donnée pour un club).
Avec une autre requête, je connais la liste des effectifs pour une saison et un club donné :
SELECT DISTINCT Licencié.Num_Licence, Licencié.Nom, Licencié.Naissance FROM Licencié, Licence WHERE Licencié.Num_Licence=Licence.Num_Licence AND year(Licence.Fin)=[Saison ?] AND Licence.Club =[Club ?] ORDER BY Licencié.Nom;
Pour info, je parvenus à constituer cette base de données notamment à l'aide des conseils sur les macros que vous m'aviez donné il y a quelques temps que j'ai su ré-exploiter. Je vous en remercie vivement.
Merci par avance de l'aide que vous pourrez m'apporter.
hoquei44
Messages postés16020Date d'inscriptiondimanche 19 janvier 2014StatutMembreDernière intervention19 avril 2024 31 juil. 2017 à 13:02
Bonjour,
Je suis parvenu à réaliser ce que je souhaitais par l'intermédiaire de deux requêtes :
Voici la première requête que j'ai nommé MaTable. Cela me permet d'obtenir un tableau ne contenant aucun doublon et présentant juste les données nécessaires (licence, saison, club).
SELECT DISTINCT Num_licence AS Licence, club, year(fin) AS Saison FROM Licence GROUP BY Num_licence, club, year(fin);
J'ai ensuite créé une seconde requête en faisant comme si le résultat de la première requête était une table comme une autre.
TRANSFORM Count(MaTable.Licence) AS NbDeLicenciés SELECT MaTable.Club FROM MaTable GROUP BY Licence.Club PIVOT MaTable.Saison;
J'ai été plus rapide que vous, à la prochaine peut-être !