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 :

Requête sql complexe (tri des données)


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut Requête sql complexe (tri des données)
    Bonjour à tous,


    Je suis actuellement en train d'établir un classement des joueurs.
    La difficulté vient de l'ordre du classement.
    Les critères d'ordres du classement sont établis sur les 2 meilleurs tournois du joueur:

    Actuellement ma requette pour un seul meilleur tournoi :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT resultat_joueurs.numero 
    FROM resultat_joueurs 
    LEFT JOIN calendrier ON calendrier.id = resultat_joueurs.id_tournoi 
    WHERE calendrier.mdj='RDR' 
    AND calendrier.categorie='U7' 
    ORDER BY resultat_joueurs.rank DESC, resultat_joueurs.pointdematch_total DESC, (resultat_joueurs.points_total/resultat_joueurs.reprises_total) DESC


    J'aimerais obtenir le classement sur les 2 meilleurs tournois, comment faire ?

  2. #2
    Membre actif Avatar de schwarzy2
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 464
    Points : 288
    Points
    288
    Par défaut
    sur quel champ te bases-tu pour déterminer quels sont tes deux meilleurs tournois? Sur un champ de resultat_joueurs ou sur une autre table?

    dans tous les cas pour une meilleur lisibilité de ta requête je te conseille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT rj.numero 
    FROM resultat_joueurs rj
    LEFT JOIN calendrier ca ON ca.id = rj.id_tournoi 
    WHERE ca.mdj='RDR' 
    AND ca.categorie='U7' 
    ORDER BY rj.rank DESC, rj.pointdematch_total DESC, (rj.points_total/rj.reprises_total) DESC

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Merci d'avoir répondu schwarzy2
    Voici ce que j'ai écris pour obtenir le résulats des 2 meilleurs tournois

    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
    17
    18
    19
    20
    21
    22
    <?php
    // On sélectionne les 2 meilleurs tournois
    $meilleurs_tournois= mysql_query("SELECT id FROM resultat_joueurs WHERE numero='".$donnees_classement['numero']."' ORDER BY rank DESC, pointdematch_total DESC, (points_total/reprises_total) DESC limit 0,2 ")or die ('Erreur :'.mysql_error());
    $z=1;
    while ($donnees_meilleurs_tournois = mysql_fetch_array($meilleurs_tournois) )
    {
    	// On compte les points de ranking
    	${'requete_calcule'.$z} = mysql_query("SELECT rank, points_match1, reprises_match1, points_match2, reprises_match2, points_match3, reprises_match3, points_match4, reprises_match4, points_tourfinal, reprises_tourfinal, pointdematch_total, points_total, reprises_total, series_total FROM resultat_joueurs WHERE numero='".$donnees_classement['numero']."' AND id='".$donnees_meilleurs_tournois['id']."'")or die ('Erreur :'.mysql_error());
    	${'donnees_calcule'.$z} = mysql_fetch_array(${'requete_calcule'.$z});
    $z++;
    }
    //On calcule les points ranking des 2 meilleurs tournois
    $pointsranking=$donnees_calcule1['rank']+$donnees_calcule2['rank'];
    //On calcule les points de matchs
    $pointsmatch=$donnees_calcule1['pointdematch_total']+$donnees_calcule2['pointdematch_total'];
    //on calcule la meilleur moyenne générale
    $meilleurmoygen=max((round($donnees_calcule1['points_total']/$donnees_calcule1['reprises_total'], 3)), (round($donnees_calcule2['points_total']/$donnees_calcule2['reprises_total'], 3)));
    //On calcule la meilleur moyenne particulière de l'ensemble des matchs
    $meilleurmoypart=max((round($donnees_calcule1['points_match1']/$donnees_calcule1['reprises_match1'], 3)), (round($donnees_calcule1['points_match2']/$donnees_calcule1['reprises_match2'], 3)), (round($donnees_calcule1['points_match3']/$donnees_calcule1['reprises_match3'], 3)), (round($donnees_calcule1['points_match4']/$donnees_calcule1['reprises_match4'], 3)), (round($donnees_calcule1['points_tourfinal']/$donnees_calcule1['reprises_tourfinal'], 3)), (round($donnees_calcule2['points_match1']/$donnees_calcule2['reprises_match1'], 3)), (round($donnees_calcule2['points_match2']/$donnees_calcule2['reprises_match2'], 3)), (round($donnees_calcule2['points_match3']/$donnees_calcule2['reprises_match3'], 3)), (round($donnees_calcule2['points_match4']/$donnees_calcule2['reprises_match4'], 3)), (round($donnees_calcule2['points_tourfinal']/$donnees_calcule2['reprises_tourfinal'], 3)));
    //On calcule la meilleure série
    $meilleurserie=max($donnees_calcule1['series_total'], $donnees_calcule2['series_total']);
    ?>

    Comment l'adapter a la requete ?

  4. #4
    Membre actif Avatar de schwarzy2
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 464
    Points : 288
    Points
    288
    Par défaut
    tu n'as pas une table tournoi?

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Merci pour ton aide

    J'ai simplifié et ajouté une autre table.

  6. #6
    Membre actif Avatar de schwarzy2
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 464
    Points : 288
    Points
    288
    Par défaut
    super
    à +!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Requête SQL Select / Aucune valeur donnée pour un ou plusieurs des paramètres requis
    Par StarLord77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/06/2015, 12h52
  2. Réponses: 4
    Dernier message: 21/04/2015, 13h27
  3. Exécuter une requète SQL a partir des données XBase
    Par jcachico dans le forum kettle/PDI
    Réponses: 0
    Dernier message: 06/01/2012, 10h36
  4. Tri des données provenant d'une requête mysql
    Par scrappilly dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/09/2011, 15h19
  5. Sous formulaire, requete SQL et Tri des données
    Par yanouil dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/07/2007, 07h16

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