IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Composer des groupes de 4


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant decisionnel
    Inscrit en
    Janvier 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant decisionnel

    Informations forums :
    Inscription : Janvier 2016
    Messages : 16
    Points : 15
    Points
    15
    Par défaut Composer des groupes de 4
    Bonjour. Dans le cadre d'un projet, je cherche à créer des équipes de 4 automatiquement en lançant une procédure. J'ai fait un peu de SQL mais je suis novice en programmation SQL on va dire les boucles , les ifs, les PROCEDURES, fonctions ... Je vous expose mon problème que j'arrive pas à résoudre. J'ai créer un site web, les gens peuvent s'inscrire directement par équipe complète ( donc à 4), dans ce cas là ils rejoingnent directement une table ParticipantsInscrits. Ensuite, il y a deuxième moyen d'inscription, on peut s'inscrire en solo duo trio dans ce cas là les informations + le numinscription sont insérées dans une table ParticipantsNonInscrits. Le numInscription est partagé par tout les membres souhaitant s'inscrire ensemble, par exemple si ils sont 4 à s'inscrire, ils auront tous le même numinnscription, si ils sont 2 à s'inscrire, ils auront tous les deux les même numinscription.

    Et voilà mon problème, je veux créer le maximum d'équipe de 4 possible à partir de mes ParticipantsNonInscrits.

    J'ai pensé à faire un group by par NumInscription comme ça je récupère le nombre de personne qui sont ensemble et créer le maximum d'équipe mais je suis bloqué là. Je sais pas si les curseurs peuvent m'aider. Je n'ai trouvé aucune information sur le web. Je voulais le faire en SQL pour être au plus proche de ma bdd, mais vaut mieux t-il pas le faire dans un autre langage comme PhP par exemple ?

    Merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    2 choses :
    - pour qu'on puisse vous aider facilement, une meilleure description des tables est nécessaire, ainsi que les essais que vous avez déjà faits ;
    - votre demande concerne ce qu'on appelle le SQL procédual (le forum ici


    Pierre

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant decisionnel
    Inscrit en
    Janvier 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant decisionnel

    Informations forums :
    Inscription : Janvier 2016
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    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:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. [CR8.5] Chevauchement de champs avec des groupes
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 11/10/2005, 22h50
  2. [Etat]afficher texte des groupes d'options
    Par 419 dans le forum IHM
    Réponses: 2
    Dernier message: 12/09/2005, 15h30
  3. [JMenu] Probleme Des Evenements du clavier vers les composants des
    Par Nadia_81 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 05/06/2005, 23h14
  4. Créer des groupes de contacts hétérogènes ?
    Par webtheque dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/04/2005, 16h57
  5. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo