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 :

requete MySQL


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Par défaut requete MySQL
    Bonjour,

    je ne parviens pas à trouver comment faire un where sur une requete avec un alias d'un somme.

    La requete suivant fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *, SUM(postes.QUANTITE * postes.PRIX_UNITAIRE) as SOMME FROM ABC_devis AS devis
    INNER JOIN ABC_devis_postes AS postes ON ID_DEVIS=devis.ID
    GROUP BY devis.ID
    Alors que celle-ci pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *, SUM(postes.QUANTITE * postes.PRIX_UNITAIRE) as SOMME FROM ABC_devis AS devis
    INNER JOIN ABC_devis_postes AS postes ON ID_DEVIS=devis.ID
    WHERE SOMME > 200
    GROUP BY devis.ID
    Est-ce que quelqu'un aurait une idée de comment contourner ce souci?

    Attention que le but final est de travailler avec ces données dans une page php.

    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    Bonjour,

    Je ne suis pas un expert mais as-tu essayé de mettre des " ' "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE SOMME > '200'

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Par défaut
    Merci mais ce n'est pas un souci avec une erreur de syntax, je pense plus à l'endroit où j'ai mis ma clause where.

    mais j'ai quand même essayer

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT *, SUM(postes.QUANTITE * postes.PRIX_UNITAIRE) AS SOMME FROM ABC_devis AS devis
    INNER JOIN ABC_devis_postes AS postes ON ID_DEVIS=devis.ID
    GROUP BY devis.ID 
    HAVING (SOMME > 200)

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    C'est pas possible, il faut passer par une sous-requête pour utiliser l'alias dans le WHERE ou utiliser directement having :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT devis.ID, SUM(postes.QUANTITE * postes.PRIX_UNITAIRE) AS SOMME 
      FROM ABC_devis AS devis
     INNER JOIN ABC_devis_postes AS postes ON ID_DEVIS=devis.ID
     GROUP BY devis.ID
    having SUM(postes.QUANTITE * postes.PRIX_UNITAIRE) > 200
    Et pas de SELECT * avec un GROUP BY, toutes les colonnes présentes dans le SELECT et non agrégées doivent être dans le GROUP BY :
    http://cedric-duprez.developpez.com/...fier-group-by/

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    ha bah suis pas un expert mais je n'étais pas loin

Discussions similaires

  1. résultat d'une requete mysql
    Par noinneh dans le forum MFC
    Réponses: 4
    Dernier message: 03/03/2005, 16h54
  2. arret requete mysql
    Par titiyo dans le forum Bases de données
    Réponses: 5
    Dernier message: 15/10/2004, 17h40
  3. Problème sous requete MySQL
    Par gavelin dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 10h36
  4. Requete MySql pour Mambo Open source
    Par azman0101 dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/06/2004, 09h34

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