les requetes sont biens maintenant

This commit is contained in:
2024-04-05 14:48:20 +02:00
parent 67012ef381
commit 53197123f9

View File

@@ -25,11 +25,11 @@ SELECT (
-- "les phases de tournoi (nom et année de tournoi, niveau de phase) jouées et pour lesquelles sest qualifié
-- lutilisateur courant. Le résultat sera trié sur les années selon lordre antéchronologique puis sur les niveaux
-- de phase selon lordre lexicographique inverse".
SELECT T.nom, YEAR(T.date_deb), Ph.niveau
SELECT T.nom, YEAR(T.date_deb), niveau
FROM participe Pa
JOIN phase Ph USING(idtournoi)
JOIN phase Ph USING(idtournoi, niveau)
JOIN tournoi T USING(idtournoi)
WHERE Pa.idjoueur = ? AND Pa.est_qualifie
WHERE Pa.idjoueur = ? AND Pa.est_qualifie AND Pa.a_joue
ORDER BY T.date_deb DESC, Ph.niveau DESC;
@@ -38,7 +38,13 @@ ORDER BY T.date_deb DESC, Ph.niveau DESC;
--"le nombre déquipes classées premières des classements et dont aucun des membres nest premier dans
-- un classement individuel".
SELECT idC FROM donnees_fournies.classement_equipe WHERE rang = 1;
WITH equipes_top_1 AS
(SELECT idequipe FROM classement_equipe WHERE rang = 1)
, equipes_avec_bon_joueur AS
(SELECT DISTINCT idequipe FROM classement_individuel JOIN joueur USING(idjoueur) WHERE rang = 1)
SELECT COUNT(*) AS nb_equipes FROM equipes_top_1 ET1 WHERE NOT EXISTS (SELECT * FROM equipes_avec_bon_joueur EBJ WHERE ET1.idequipe = EBJ.idequipe);
@@ -48,8 +54,8 @@ SELECT idC FROM donnees_fournies.classement_equipe WHERE rang = 1;
WITH participants_tournois AS
(SELECT idtournoi, COUNT(idtournoi) AS nb
FROM participe
JOIN tournoi USING(idtournoi)
WHERE YEAR(date_deb) >= (YEAR(NOW()) - 3)
JOIN tournoi (idtournoi)
AND YEAR(T.date_deb) >= (YEAR(NOW()) - 3)
GROUP BY idtournoi)
SELECT AVG(nb) AS average FROM participants_tournois;
@@ -60,13 +66,13 @@ SELECT AVG(nb) AS average FROM participants_tournois;
-- "Donner le nom et le prénom des joueurs classés de manière individuelle dans le top 5 dau moins 2
-- classements de portée nationale".
SELECT DISTINCT J.nom, J.prenom FROM joueur J
JOIN donnees_fournies.classement_individuel CI1 ON J.idjoueur = CI1.idJ
JOIN donnees_fournies.classement_individuel CI2 ON J.idjoueur = CI2.idJ
JOIN donnees_fournies.classement C1 ON C1.idC = CI1.idC
JOIN donnees_fournies.classement C2 ON C2.idC = CI2.idC
JOIN classement_individuel CI1 ON J.idjoueur = CI1.idjoueur
JOIN classement_individuel CI2 ON J.idjoueur = CI2.idjoueur
JOIN classement C1 ON C1.idclassement = CI1.idclassement
JOIN classement C2 ON C2.idclassement = CI2.idclassement
WHERE CI1.rang >= 5 AND CI2.rang >= 5
AND C1.portée = "nationale" AND C2.portée = "nationale"
AND CI1.idc < CI2.idC;
AND C1.portee = "nationale" AND C2.portee = "nationale"
AND CI1.idclassement < CI2.idclassement;