Bonjour, désolé de la réponse si tard j'étais en examen donc j'avais peu de tps à consacrer pour le projet. Merci d'avoir déplacé mon message dans la bonne section.
Donc au niveau de mes tables j'ai les tables suivantes:
Equipe: CodeEquipe, NomEquipe
JoueurParticipants: IDparticipants, Nom, Prenom, Pseudonyme, DateDeNaissance, Email, #CodeEquipe, Classement
JoueurNonParticipants: , Nom, Prenom, Pseudonyme, DateDeNaissance, Email, Classement, NumInscription
Bon mon problème est le suivant, les gens qui s'incrivent à 4 en même temps sont directement envoyé dans la table JoueursParticipants en ayant le nom de leur équipe pour respecter la contrainte référentielle
Maintenant, j'ai une table de JoueursNonParticipants dans la les gens peuvent s'inscrire à 1,2,3. A partir de cette table je veux être capable de former le plus d'équipe de 4 possibles dans ma table. Pour celà j'ai déjà élaborer le programme suivant il se peut qu'il y est des fautes de Sql mais bon j'ai pas corrigé car après je me suis rendu compte qu'il ne correspondait pas exactement à mon envie:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| DELIMITER //
CREATE PROCEDURE TeamCreation()
BEGIN
DECLARE NbrsJoueurs INT unsigned DEFAULT 0 ;
-- AFFECTATION VARIABLE JOUEUR
SET NbrsJoueurs := (SELECT COUNT(*) FROM JoueursSansEquipe);
IF NbrsJoueurs = 5 THEN
INSERT INTO `Equipe`(`NomEquipe`) SELECT CONCAT('Equipe ' , ((SELECT COUNT( * ) FROM Equipe ) +1));
INSERT INTO `JoueursParticipants`(`Nom`, `Prenom`, `DateDeNaissance`, `Pseudonyme`, `Email`, `CodeEquipe`, `Classement`) SELECT JoueursSansEquipe.Nom, JoueursSansEquipe.Prenom, JoueursSansEquipe.DateDeNaissance, JoueursSansEquipe.Pseudonyme, JoueursSansEquipe.Mail, Equipe.CodeEquipe, JoueursSansEquipe.Classement FROM JoueursSansEquipe, Equipe WHERE Equipe.NomEquipe = 'Equipe' ;
DELETE FROM JoueursSansEquipe;
END IF;
END;// |
L'architecture de ma base de donnée a légèrement été modifiée après des recherches ça explique pourquoi dans cette requête, elle n'appelle pas des champs qui sont dans mes tables actuelles. Bon je voulais intégrer ça dans un trigger mais le problème c'est que cette procédure ne tient pas compte des équipes.
J'ai donc pensé à changer ma base de donnée et à utiliser une reqûete group by inscription, j'obtiens alors le nombre de groupe ensemble.
SELECT `NumInscription`, COUNT(*) FROM `JoueursSansEquipe` GROUP BY `NumInscription`
Mais là je bloque je voudrais à partir de cette table former le plus d'équipe de 4 possibles mais j'en aucune idée, les seules idées que j'ai viole les principes du SQL. Si quelqu'un peut éclairer ma lanterne ça serait vraiment gentil
Merci d'avance
Partager