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

SQL Procédural MySQL Discussion :

Addition et multiplications


Sujet :

SQL Procédural MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [RESOLU] Addition et multiplications
    Bonjour,

    Je recherche à faire la somme d'un panier (commerce en ligne):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    TABLE "produits"
    +------------+------+
    | produit_id | prix |
    +------------+------+
    | 1          |  10  |
    +------------+------+
    | 2          |  20  |
    +------------+------+
     
     
    TABLE "commande"
    +-----------------+------------+----------+------------+
    | commande_id     | produit_id | quantite | panier_id  |
    +-----------------+------------+----------+------------+
    |   1             |   1        |     3    |       1    |
    +-----------------+------------+----------+------------+
    |   2             |   2        |     3    |       1    |
    +-----------------+------------+----------+------------+
    (Je vous epargne la table panier, inutile ici.)

    Comment faire donc le total du panier (90 euros bien sûr) ?

    Je suis parti de cette requete mais ce n'est pas bien sur suffisant...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT SUM( p.prix )
    FROM commandes c LEFT JOIN produits p USING ( produit_id )
    WHERE c.panier_id = 1 ;
    Est-ce en fait vraiment possible avec mysql ??

    Merci pour votre aide
    --
    http://www.yayel.com

  2. #2
    Membre confirmé
    Avatar de omiossec
    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2002
    Messages : 241
    Points : 563
    Points
    563
    Par défaut
    pourquoi ne pas utiliser une construction du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT SUM( p.prix * c.quantite ) 
    FROM commandes c LEFT JOIN produits p USING ( produit_id ) 
    WHERE c.panier_id = 1
    group by commande_id
    Olivier Miossec

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    C'est effectivement si bête !

    Merci !

    Mais quel est l'interêt du "GROUP BY" pour un SUM ?
    --
    http://www.yayel.com

  4. #4
    Membre confirmé
    Avatar de omiossec
    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2002
    Messages : 241
    Points : 563
    Points
    563
    Par défaut
    Citation Envoyé par Yayel
    C'est effectivement si bête !

    Merci !

    Mais quel est l'interêt du "GROUP BY" pour un SUM ?
    Sum est ce que l'on appelle une fonction d'agrégation, non pas qu'elle est un quelquonque bagage universitaire mais elle calcule une valeur à partir d'un groupe de valeur. c'est par ce qu'il a besoin d'un groupe que l'on a besoin de faire un GROUP BY
    Par contre il ne faut pas confondre ces fonctions avec les opérateur arithmetique (faisant des opération terme à terme)
    Olivier Miossec

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    OK. J'ai juste relevé que le GROUP BY était en effet indispensable pour un COUNT() par exemple, mais il se trouve que ta requête fonctionne très bien sans (du moins sous mySQL).
    --
    http://www.yayel.com

  6. #6
    Membre confirmé
    Avatar de omiossec
    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2002
    Messages : 241
    Points : 563
    Points
    563
    Par défaut
    Citation Envoyé par Yayel
    OK. J'ai juste relevé que le GROUP BY était en effet indispensable pour un COUNT() par exemple, mais il se trouve que ta requête fonctionne très bien sans (du moins sous mySQL).
    Il est possible en effet de ne pas utiliser group by mais uniquement dans le cas ou la fonction d'agragation est seule dans la liste des champs.

    en d'autre terme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM( p.prix * c.quantite ) .... from table
    est permis

    mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM( p.prix * c.quantite ), commande_id  .... from table
    ne l'est pas
    Olivier Miossec

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour ces explications.
    --
    http://www.yayel.com

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

Discussions similaires

  1. Matrices : addition et multiplication
    Par frafria dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 28/01/2014, 23h07
  2. Réponses: 2
    Dernier message: 06/09/2013, 20h52
  3. addition de multiplication
    Par dubis dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 18/01/2012, 11h09
  4. créer un formulaire et faire une addition ou multiplication
    Par ellocodelcoco dans le forum Langage
    Réponses: 7
    Dernier message: 17/11/2009, 15h37
  5. problème addition et multiplication (BCD)
    Par jocelyn54 dans le forum C
    Réponses: 8
    Dernier message: 08/12/2007, 18h41

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