Faire une sommes dans une requete

Viviane Tremblay -  
jisisv Messages postés 3678 Statut Modérateur -
J'ai fait une requête avec un champs pour la quantité commandé (commande client)
J'aimerais faire la somme de toutes les entrées pour la colonne quantité commandé.

Merci à l'avance

2 réponses

  1. dugenou Messages postés 6262 Statut Contributeur 1 455
     
    Bonsoir,

    Je ne sais pas si ma méthode est la meilleure, mais c'est celle que j'utilise régulièrement :

    Supposons que ton champ se nomme quantite, après ta requête

    $rq =mysql_query ("SELECT * FROM  etc") 
    }
    
    mysql_close;
    
    //tu déclares une variable
    
     $xquantite=0;
    
    //puis après 
    
    while ($ligne=mysql_fetch_object($rq))
    
    {
    
    $xquantite=$xquantite+$ligne->quantite;
    
    //tu crées ta colonne
    
    echo"$ligne->quantite";
    
    }
    
    //puis tu affiches le total
    
    echo"$xquantite";
    


    J'espère avoir été assez clair.

    Bon courage.
    0
  2. jisisv Messages postés 3678 Statut Modérateur 936
     
    Il existe un opérateur de sommation dans la plupart des bases de données:
    mysql> create table brol (i float);
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> insert into brol values(3.1415);
    Query OK, 1 row affected (0.00 sec)
    
    mysql> insert into brol values(2.7182);
    Query OK, 1 row affected (0.00 sec)
    
    mysql> insert into brol values(1.4142);
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select sum(i) from brol;
    +-----------------+
    | sum(i)          |
    +-----------------+
    | 7.2738999128342 |
    +-----------------+
    1 row in set (0.00 sec)
    

    Plus généralement
    mysql> create table brol (i float, qty float);
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> insert into brol values(2.7182, 1);
    Query OK, 1 row affected (0.01 sec)
    
    mysql> insert into brol values(1.4142, 2);
    Query OK, 1 row affected (0.01 sec)
    
    mysql> select sum(i *qty) from brol;
    +-----------------+
    | sum(i *qty)     |
    +-----------------+
    | 5.5465998649597 |
    +-----------------+
    1 row in set (0.00 sec)
    
    0