2011-12-27 8 views
0

J'ai une requête qui renvoie le dessous de la jonction de deux tables:Comment calculer le total du groupe?

+---------------+-----------------+ 
| Type   | Price   | 
+---------------+-----------------+ 
| Music   | 19.99   | 
| Music   | 3.99   | 
| Music   | 21.55   | 
| Toy   | 89.95   | 
| Toy   | 3.99   | 
+---------------+-----------------+ 

Mon problème est comment puis-je regrouper les produits par type, de sorte qu'il affiche un seul type de produit et le prix total pour chaque type de produit? Par exemple:

Music | 45.53 
Toy | 93.94 

et ainsi de suite.

+3

Cela nous aiderait à modifier votre requête si vous nous avez montré la requête ... – DaveRandom

+0

désolé pour le retard dans la réponse. la requête est très désordonnée et rejoint trois tables d'une manière un peu compliquée. Y at-il de toute façon pour obtenir le résultat souhaité avec juste php par exemple. afficher un type de produit dans le tableau, vérifier si les types de produits suivants sont identiques au type de produit affiché; Si oui, ajoutez le prix au type de produit existant. Sinon, affichez le nouveau type de produit. Les approches suggérées ci-dessous conviendraient s'il s'agissait d'une seule requête de table. Je peux poster la requête dès que j'en ai l'opportunité si cela est encore nécessaire. Je ne peux pas y accéder maintenant – echez

Répondre

0

Got it enfin.

// Get the sum 
$group = array(); 
foreach($rows as $r){ 
    $group[$r->type] = $group[$r->Type] + $r->Price; 
} 

// Display 
foreach($group as $type=>$price){ 
    echo "Type:".$type." Price: ".$price; 
} 

message original ici: Group results in subgroups

1
mysql> select type, round(sum(price),2) sum from storage group by type; 
+-------+-------+ 
| type | sum | 
+-------+-------+ 
| Music | 45.53 | 
| Toy | 93.94 | 
+-------+-------+ 
2 rows in set (0.11 sec) 
+0

'GROUP BY Type' s'il vous plaît ... – Matmarbon

+0

@Matmarbon Tout à fait confondu. Le fixe maintenant. – kba

+0

Même si, le -1 n'est pas le mien: / – Matmarbon

7
SELECT type, SUM(price) FROM table_name GROUP BY (type)