une requete => somme horizontale et vertical

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : une requete => somme horizontale et vertical

par cerber » 04 mai 2005, 11:32

STOP

Pour avoir des totaux dans les GROUP BY on peut utiliser depuis mysql 4.1.1 l'option WITH ROLLUP
http://dev.mysql.com/doc/mysql/fr/group ... fiers.html
SELECT champ1, SUM(champ2) FROM table GROUP BY champ1 WITH ROLLUP

par sadeq » 03 mai 2005, 16:06

Il faut écrire ça:

Code : Tout sélectionner

SELECT * , (SELECT sum( champ2 ) FROM test) AS Total FROM `test` GROUP BY champ1


En effet, le total est une somme globale elle doit avoir une portée sur tous les enregistrements de la table

Sous MYSQL, un champ de SELECT peut être calculé par une sous-requête.

Et c'est normal que SQL répéte la même valeur du total dans toutes les lignes du SELECT principal. Parce qu'il n'y qu'un total et plusieurs lignes de réponse.

C'est au développeur de traiter le tuple résultat et formater un affichage tel qu'un tableau croisé.

Sous ACCESS les requête de croisment sont permises (voir du côté de la requête croisée dynamique TRANSFORM... SELECT... GROUP BY... PIVOT)

par Invité » 03 mai 2005, 15:19

j'ai déjà fait somme et j'obitne la somme ligne par ligne du nombre d'occurence du GROUP BY tel que :

+----------+-------+
| champ1 | var1 | SUM(var1)
+----------+-------+
| azerty | 2 | 5
+----------+-------+
| qwerty | 4 | 0
+----------+-------+
| abcdef | 17 | 21
+----------+-------+

Mais pas la somme total d'une colonne.

par iclo » 03 mai 2005, 14:52

Regardes dans la doc MYSQL du côté de la fonction SUM()

une requete => somme horizontale et vertical

par coolhead » 03 mai 2005, 14:49

Bonjour,

Lorsqu'on passe une requete tel que "SELECT * FROM table GROUP BY champ1"

on peut obtenir cela :

+----------+-------+
| champ1 | var1 |
+----------+-------+
| azerty | 2 |
+----------+-------+
| qwerty | 4 |
+----------+-------+
| abcdef | 17 |
+----------+-------+

Comment avoir aussi au passage le somme de 2 + 4 + 17 tel que :

+----------+-------+
| champ1 | var1 |
+----------+-------+
| azerty | 2 |
+----------+-------+
| qwerty | 4 |
+----------+-------+
| abcdef | 17 |
+----------+-------+
| TOTAL | 23 |
+----------+-------+