2016-03-29 9 views
1

Zunächst einmal, ich habe eine Tabelle store_00PHP Summe mit gleichen Bezugszeichen

id | ref | item | qty | cost | sell 
1  22 x1  5  10  15 
2  22 x2  10 5  10 
3  23 x11 2  4  6 
4  23 x22 1  5  10 
5  24 x8  1  1  2 

Jetzt genannt Ich möchte die Ausgabe wie folgt sein:

   | ref number 22 | 
total cost = 100 | total sell = 175 | total qty = 15 

      | ref number 23 | 
total cost = 13 | total sell = 22 | total qty = 3 

und so weiter ...

Bitte beachten Sie, ich muss multiplizieren Sie jede Kosten und verkaufen, um ihre Menge, weil die obige Tabelle Einheitspreis zeigt ... Das ist, was meinen ganzen Code versaut macht, wäre es einfacher wenn ich das tue SUM(qty), SUM(cost) , SUM(sell)! aber in meinem Fall werden die Ergebnisse anders sein.

PHP-Code:

$query2 = "SELECT * from store_00 GROUP by ref"; 
$result2 = mysql_query($query2); 
While($row2 = mysql_fetch_assoc($result2)){ 

$ts = $row2['sell'] * $row2['qty']; 
$ta = $row2['cost'] * $row2['qty']; 
$sumts += $ts; 
$sumta += $ta; 
$sumqty += $row2['qty']; 

echo "<table width=60% height=% align=center border=1 bgcolor=#FFFF99>"; 

echo "<tr><td align=center><font style='font-size:17px; font-weight:bold;'>TTL QTY = ".$sumqty."</font></td>"; 
echo "<td align=center><font style='font-size:17px; font-weight:bold;'>TTL Cost = ".number_format($sumta, 2, '.', '')." JD</font></td>"; 
echo "<td align=center><font style='font-size:17px; font-weight:bold;'>TTL Sell = ".number_format($sumts, 2, '.', '')." JD</font></td></tr>"; 
echo "</table>"; 

} 

nach dem obigen Code, scheint der Ausgang nimmt nur den ersten Wert von jeder gruppiert ref wie folgt aus:

 | ref number 22 | 
total cost = 50 | total sell = 75 | total qty = 5 

Ich weiß nicht, wie Um einen Weg zu finden, Werte zu multiplizieren, summiere sie dann und gruppiere alle auf einmal, wenn du eine andere Methode hast, teile sie bitte!

+0

ich es versucht habe und es hat nicht funktioniert, gezeigt leere Tabelle nur: /. Obwohl es für mich richtig aussieht. –

+2

http://sqlfiddle.com/#!9/60e6e/1 – fusion3k

+0

Danke Mann, es funktioniert wie ein Charme! –

Antwort

1

Es ist möglich, SUM auf dem Produkt von zwei Spalten zu verwenden.

SELECT 
    ref, 
    SUM(qty) as total_quantity, 
    SUM(qty*cost) as total_cost, 
    SUM(qty*sell) as total_sell 
FROM `store_00` 
GROUP BY ref 

Wenn Sie diese Abfrage verwenden, sollten Sie keine Mathematik in PHP verwenden müssen.

Verwandte Themen