Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requête sql meilleur score

    10 mai 2019 à 11:31:37

    SELECT p.id_team, p.heure, p.groupe, p.valider FROM quart_final p
    INNER JOIN equipe e ON e.id = p.id_team
    INNER JOIN session s ON s.id = p.id_session AND YEAR(s.date_creation) = YEAR(CURRENT_DATE)
    WHERE (SELECT Max(score_team) FROM quart_final WHERE groupe = 1)
    Bonjour à tous.
    Alors voilà, je cherche à sortir le meilleur score entre les deux champs du groupe 1
    J'ai un peu de mal, les requêtes que je test me sortent soit
    - tous les résultats,
    - soit les deux champs du groupe 1 (moi je veux juste le meilleur score des deux)
    - soit rien.
    Pourriez-vous m'aider ?
    • Partager sur Facebook
    • Partager sur Twitter
    Toujours motivé à apprendre :)
      10 mai 2019 à 11:40:06

      Bonjour,

      Magic67Jojo a écrit:

      je cherche à sortir le meilleur score entre les deux champs du groupe 1

      C'est ce que fait la sous-requête dans ta clause WHERE ... Mais je ne comprends pas ce que tu cherches à obtenir ...

      Peux-tu nous donner le résultat attendu ?

      Un peu au pif, je tente ceci :

      SELECT
          p.id_team,
          p.heure,
          p.groupe,
          p.valider,
          p.score_team
      FROM
          (
              -- Score max par équipe
              SELECT id_team, MAX( score_team ) AS max_score
              FROM quart_final
              GROUP BY id_team
          ) m
              INNER JOIN quart_final p
                  ON m.id_team = p.id_team
                  AND m.max_score = p.score_team
              INNER JOIN equipe e
                  ON e.id = p.id_team
              INNER JOIN session s
                  ON s.id = p.id_session
                  AND YEAR(s.date_creation) = YEAR(CURRENT_DATE)

      -
      Edité par Benzouye 10 mai 2019 à 11:43:19

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        10 mai 2019 à 11:58:19

        Bonjour,

        Alors ta requête me sort le même tableau.

        Ce que je cherche à obtenir c'est 

        Le meilleur score entre les deux id_team du groupe 1

        Donc en gros le résultat que je souhaite obtenir 1 | 280 | 14h45  | 1 | 0

        SELECT Max(score_team), p.id_team FROM quart_final p
        INNER JOIN equipe e ON e.id = p.id_team
        INNER JOIN session s ON s.id = p.id_session AND YEAR(s.date_creation) = YEAR(CURRENT_DATE)
        WHERE  p.groupe = 1

        Cette requête me sors bien le meilleur score entre les deux, mais pas avec le bon id

        elle me sors 1 | 287 | 14h45 | 1 | 0

        • Partager sur Facebook
        • Partager sur Twitter
        Toujours motivé à apprendre :)
          10 mai 2019 à 12:11:35

          Magic67Jojo a écrit:

          ta requête me sort le même tableau

          Elle sort les meilleurs scores de chaque team, je n'avais pas compris que tu voulais par groupe ...

          SELECT
              p.id_team,
              p.heure,
              p.groupe,
              p.valider,
              p.score_team
          FROM
              (
                  -- Score max par groupe
                  SELECT groupe, MAX( score_team ) AS max_score
                  FROM quart_final
                  GROUP BY groupe
              ) m
                  INNER JOIN quart_final p
                      ON m.groupe = p.groupe
                      AND m.max_score = p.score_team
                  INNER JOIN equipe e
                      ON e.id = p.id_team
                  INNER JOIN session s
                      ON s.id = p.id_session
                      AND YEAR(s.date_creation) = YEAR(CURRENT_DATE)

          Par contre, attention ... si dans un même groupe il y a plusieurs fois un score maxi identique, alors tu auras des doublons ... exemple si la team 287 du groupe 1 fait aussi un score de 1 ...

          -
          Edité par Benzouye 10 mai 2019 à 12:12:15

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            10 mai 2019 à 12:13:01

            Normalement j'ai trouvé

            SELECT * FROM quart_final p WHERE(
            SELECT MAX(p.score_team) FROM (
            	SELECT p.id_team FROM quart_final p
            	INNER JOIN session s ON s.id = p.id_session AND YEAR(s.date_creation) = YEAR(CURRENT_DATE)
            	WHERE  p.groupe = 1) as x) AND p.groupe = 1

            Si quelqu'un peut me la confirmer en tout cas elle me sort ce que je souhaite donc je vais utiliser ça pour le moment je verrais bien

            Merci pour ton aide Benzouye

            • Partager sur Facebook
            • Partager sur Twitter
            Toujours motivé à apprendre :)
              10 mai 2019 à 12:15:10

              Je pense que nous nous sommes croisé, ma réponse ci-dessus me paraît plus propre, dans le sens où elle fonctionne indifféremment pour tous les groupes, la tienne se limitant au groupe 1 ...
              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                10 mai 2019 à 12:17:43

                Benzouye a écrit:

                Par contre, attention ... si dans un même groupe il y a plusieurs fois un score maxi identique, alors tu auras des doublons ... exemple si la team 287 du groupe 1 fait aussi un score de 1 ...

                -
                Edité par Benzouye il y a moins de 30s


                Bien vue mais aucun doublons possible sauf erreur humaine de saisie de score. C'est pour les 1/2 final pour le foot :) Du coup c'est sont des matchs qui doivent obligatoirement être gagné par l'une où l'autre équipe du coup y'auras toujours que 1 gagnant et un perdant 

                Merci encore ;)

                • Partager sur Facebook
                • Partager sur Twitter
                Toujours motivé à apprendre :)

                Requête sql meilleur score

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown