Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requête SQL

#1054

    23 octobre 2023 à 0:24:50

    Bonjour à tous, 

    J'ai une erreur lors d'une requête, je ne comprends pas pourquoi je l'ai. Voici mes tables :

    Voici mon code SQL :

    SELECT
        calendrier.date AS date_rencontre,
        D.equipe AS equipe_home,
        A.equipe AS equipe_away,
        ROUND(
            (1 - (1 - (D.pourcentage_buts_mi_temps_home / 100)) * (1 - (A.pourcentage_buts_mi_temps_away / 100))) * 100
        ) AS proba_buts_mi_temps
    FROM (
        SELECT
            equipe_ligue.equipe,
            ROUND(
                (
                    (1_scored_ht_home + 2_scored_ht_home + 3_scored_ht_home + 4_scored_ht_home) /
                    (0_scored_ht_home + 1_scored_ht_home + 2_scored_ht_home + 3_scored_ht_home + 4_scored_ht_home)
                ) * 100
            ) AS pourcentage_buts_mi_temps_home,
            calendrier.date
        FROM scored_conceded_ht_home
        INNER JOIN equipe_ligue ON scored_conceded_ht_home.equipe = equipe_ligue.Id_equipe
        INNER JOIN calendrier ON scored_conceded_ht_home.equipe = calendrier.equipe_home
    ) AS D
    CROSS JOIN (
        SELECT
            equipe_ligue.equipe,
            ROUND(
                (
                    (1_scored_ht_away + 2_scored_ht_away + 3_scored_ht_away + 4_scored_ht_away) /
                    (0_scored_ht_away + 1_scored_ht_away + 2_scored_ht_away + 3_scored_ht_away + 4_scored_ht_away)
                ) * 100
            ) AS pourcentage_buts_mi_temps_away,
            calendrier.date
        FROM scored_conceded_ht_away
        INNER JOIN equipe_ligue ON scored_conceded_ht_away.equipe = equipe_ligue.Id_equipe
        INNER JOIN calendrier ON scored_conceded_ht_away.equipe = calendrier.equipe_away
    ) AS A
    WHERE
        (1 - (1 - (D.pourcentage_buts_mi_temps_home / 100)) * (1 - (A.pourcentage_buts_mi_temps_away / 100))) * 100 > 79;


    Et mon erreur est : #1054 - Champ 'calendrier.date' inconnu dans field list

    Pourtant il y a bien le champs date dans la table calendrier.

    Merci d'avance de votre aide !

    -
    Edité par Mopire 23 octobre 2023 à 0:38:52

    • Partager sur Facebook
    • Partager sur Twitter
      23 octobre 2023 à 11:15:58

      calendrier.date AS date_rencontre devrait être D.date (et?/)ou A.date puisque la requête extérieure ne comporte pas la table calendrier ni en FROM ni en JOIN ?

      -
      Edité par julp 23 octobre 2023 à 11:17:17

      • Partager sur Facebook
      • Partager sur Twitter
        23 octobre 2023 à 22:56:45

        Merci de ta raison julp, 

        J'ai fais ce code qui m'a l'air bon et qui me rend pas d'erreur. Mais cela ne me rend aucun résultat.

        Vous en pensez quoi ?

        Merci d'avance!

        SELECT
            C.date AS date_rencontre,
            D.equipe AS equipe_home,
            A.equipe AS equipe_away,
            ROUND(
                (1 - (1 - (D.pourcentage_buts_mi_temps_home / 100)) * (1 - (A.pourcentage_buts_mi_temps_away / 100))) * 100
            ) AS proba_buts_mi_temps
        FROM (
            SELECT
                calendrier.date,
                equipe_ligue.equipe,
                ROUND(
                    (
                        (1_scored_ht_home + 2_scored_ht_home + 3_scored_ht_home + 4_scored_ht_home) /
                        (0_scored_ht_home + 1_scored_ht_home + 2_scored_ht_home + 3_scored_ht_home + 4_scored_ht_home)
                    ) * 100
                ) AS pourcentage_buts_mi_temps_home
            FROM scored_conceded_ht_home
            INNER JOIN calendrier ON scored_conceded_ht_home.equipe = calendrier.equipe_home
            INNER JOIN equipe_ligue ON scored_conceded_ht_home.equipe = equipe_ligue.Id_equipe
        ) AS D
        CROSS JOIN (
            SELECT
                calendrier.date,
                equipe_ligue.equipe,
                ROUND(
                    (
                        (1_scored_ht_away + 2_scored_ht_away + 3_scored_ht_away + 4_scored_ht_away) /
                        (0_scored_ht_away + 1_scored_ht_away + 2_scored_ht_away + 3_scored_ht_away + 4_scored_ht_away)
                    ) * 100
                ) AS pourcentage_buts_mi_temps_away
            FROM scored_conceded_ht_away
            INNER JOIN calendrier ON scored_conceded_ht_away.equipe = calendrier.equipe_away
            INNER JOIN equipe_ligue ON scored_conceded_ht_away.equipe = equipe_ligue.Id_equipe
        ) AS A
        INNER JOIN calendrier C ON D.date = C.date AND D.equipe = C.equipe_home AND A.date = C.date AND A.equipe = C.equipe_away
        WHERE C.date >= CURRENT_DATE() AND C.date <= CURRENT_DATE() + INTERVAL 7 DAY
        ORDER BY proba_buts_mi_temps DESC;



        • Partager sur Facebook
        • Partager sur Twitter
          26 octobre 2023 à 17:43:58

          exécute tes sous-requêtes individuellement pour voir si elles te retournent le résultat attendu
          • Partager sur Facebook
          • Partager sur Twitter
            1 novembre 2023 à 10:11:09

            Merci à tous, j'ai réussi à finir ma requête ! (chatGPT m'a aidé aussi).
            • Partager sur Facebook
            • Partager sur Twitter

            Requête SQL

            × 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