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

PostgreSQL Discussion :

Requète imbriqué dans le SELECT


Sujet :

PostgreSQL

  1. #1
    Membre averti
    Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Par défaut Requète imbriqué dans le SELECT
    Bonjour,

    Explication du probleme tout d'abord pour que je sois pas trop flou dans ma question.
    Je voudrais avoir le pourcentage de cote d'un joueur dans un systeme de mise.
    Pour faire cela dans la requete je recupere le montant des mises sur un joueur et un match. Ce résultat je le divise par le montant des mises total du meme match.
    A ce stage la ( normalement ) je dois avoir le pourcentage c'est a dire un nombre entre 0 et 1.
    Je multiplie donc ceci par 100.

    Pour faire cela, il faut que je passe par une requete imbriqué mais cette imbrication je ne vois pas comment je peux la faire a part la mettre dans le SELECT

    Voila ma requete ( aucune erreur ne s'affiche, toutefois elle me retourne 0 a chaques fois ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT montant_mise / 
         ( SELECT SUM(montant_mise) FROM MISER WHERE id_match = '3')
    * 100 AS cote FROM MISER WHERE id_joueur = '1' AND id_match = '3'

    En esperant avoir une réponse, je vous remercie de m'avoir lu.

    Ps: Je suis nouveau dans ce forum j'espere pouvoir servir a quelque chose dans la communauté

  2. #2
    jnore
    Invité(e)
    Par défaut
    Bonsoir

    Il te faut une liaison entre ta table et ta sous-requete:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    SELECT montant_mise*100 / 
        (
        SELECT SUM(montant_mise) 
        FROM MISER 
        WHERE id_match = '3' and id_joueur= table_alias.id_joueur
        GROUP BY id_joueur
        ) as cote
     
     
    FROM MISER as table_alias
    WHERE id_joueur = '1' AND id_match = '3'

    Si ca ne marche pas, donnes-nous le nom de tes champs.

  3. #3
    Membre averti
    Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Par défaut
    Je te remercie énormement c'est parfait, je savais pas qu'il fallait procédé ainsi.

    Juste une petite modification pour que la requete renvoye pas 100 tout le temps car tu fais une division entre 2 fois la meme chose ( je crois mais je suis pas sur ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT SUM(montant_mise)*100 / 
        (
        SELECT SUM(montant_mise) 
        FROM MISER 
        WHERE id_match = '3'
        ) AS cote
     
     
    FROM MISER AS table_alias
    WHERE id_joueur = '1' AND id_match = '3'
    Voila encore merci à toi.

  4. #4
    MrX
    MrX est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 46
    Par défaut
    Voici une autre solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT table_alias.montant_mise*100 / cote.total AS cote
    FROM 
    MISER AS table_alias,
    (
        SELECT SUM(montant_mise) as total
        FROM MISER as 
        WHERE id_match = '3' AND id_joueur= table_alias.id_joueur
        GROUP BY id_joueur
    ) AS cote
    WHERE id_joueur = '1' AND id_match = '3'
    A++

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

Discussions similaires

  1. requête imbriquée dans une date_add
    Par sissiegozz dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/11/2012, 07h15
  2. Problème avec des requète imbriquée dans le from
    Par Stouille33 dans le forum Développement
    Réponses: 5
    Dernier message: 23/10/2008, 19h17
  3. Requètes imbriquée dans le FROM
    Par Stouille33 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/10/2008, 11h05
  4. Requête imbriquée dans une même table
    Par casavba dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/01/2008, 21h02
  5. requête imbriquée dans une vue SQL
    Par captainamerica75 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/05/2007, 14h39

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