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

PHP & Base de données Discussion :

requete imbriquee (subqueries)


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 117
    Par défaut requete imbriquee (subqueries)
    salut
    pouvez vous m'aider a trouver l'erreur dans cette syntaxe(je chercher le maximum d'un somme des quantites d'un client donne)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT MAX(
    SELECT SUM( quantite )
    FROM lignescommande a, commande b, client c
    WHERE a.id_cmd = b.id_cmd
    AND b.id_cl = c.id_cl )
    FROM lignescommande a, commande b, client c
    WHERE a.id_cmd = b.id_cmd

    merci beaucoup

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 271
    Par défaut
    Questions :
    1- Tu veux avoir le client qui a le plus commander de produits en terme de quantité?
    ou bien
    2- Pour un client donné, Tu voudrais savoir quelle est la plus grande quantité de produits qu'il a commandé?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    On ne peut pas faire MAX d'un SELECT, il faut faire MAX d'un champ.
    Ta requête pourrait peut-être s'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT max(m) FROM (select sum(qte) AS m FROM .... WHERE ....) AS s
    Il y a un point obscur dans ton explication c'est le "client donné", car ta requête ne fait pas référence à un client donné mais à tous les clients.
    Peut-être qu'il manque un GROUP BY client si c'est "pour chaque client".
    Sinon autant faire directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT max(sum(qte)) FROM ...

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 117
    Par défaut
    fab256

    1- Tu veux avoir le client qui a le plus commander de produits en terme de quantité?
    oui..avec le nom de client

    estofilo
    j ai essaye les deux requetes ,le probleme reseste...

  5. #5
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT MAX(SOMME), client
    FROM 
    (
      SELECT SUM(quantite) as SOMME ,client,annee
      FROM table
      GROUP BY client, annee
    ) as tmp
    WHERE client LIKE 'c%'
    GROUP BY client
    Si tu veux avoir un agregat d'agregat faut procéder comme ça ...

  6. #6
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    si tu veux un classement de tes clients fait plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT SUM(quantite),client
    FROM table
    WHERE produit LIKE 'p%'
    GROUP BY client
    ORDER BY SUM(quantite)
    LIMITS 1

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 271
    Par défaut
    Je pense que ta requete pourrais s'écrire de cette facon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT SUM(b.quantite) AS SommeQtt, c.nom_cl
    commande a
    INNER JOIN lignescommande b ON (a.id_cmd = b.id_cmd)
    INNER JOIN client c ON (a.id_cl = c.id_cl)
    GROUP BY c.nom_cl
    ORDER BY SommeQtt
    LIMITS 1

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 117
    Par défaut 50 pour cent est faite
    salut tout le monde
    je viens de réaliser 50 pour cent du travail
    la requête est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT MAX( SOMME )
    FROM (
     
    SELECT SUM( quantite ) AS SOMME
    FROM lignescommande a, commande b, client c
    WHERE a.id_cmd = b.id_cmd
    AND b.id_cl = c.id_cl
    GROUP BY c.nom
    ) AS temp
    il m'affiche le MAXIMUM des articles commande par un client ,le problème c'est que je veux qu il soit accompagne d nom de ce client(l'atribut nom qui existe dans la table client)
    alors ici j me sens un petit peu perdu, avez vous des propositions .svp
    merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/04/2006, 14h36
  2. [VBnet][Access] Requete imbriquee "insert + select"
    Par Fab62_ dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/03/2006, 13h58
  3. requete imbriquee
    Par pascale86 dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/09/2005, 15h10
  4. [REQUETE][IMBRIQUEE] Bien ou pas bien?
    Par fabszn dans le forum Langage SQL
    Réponses: 31
    Dernier message: 21/04/2005, 10h57
  5. PROBLEME DE REQUETE IMBRIQUEE
    Par fleuve007 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/12/2003, 15h33

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