Optellen in MySql database
Ik heb een 2-tal vragen:
1) Ik heb een kaarten bestelsysteem waarin ik graag ALLE kaarten bij elkaar opgeteld wil zien (Klant 1 heeft 3 kaarten, klant 2 heeft 5 kaarten). Alle kaarten kosten 9,50 per stuk.
2) Aan de kaarten hangt ook een prijs. Het totaalbedrag per klant is hierbij makkelijk te berekenen (2 kaarten x 9.50), maar hoe doe ik dat nu met het TOTAAL aantal kaarten in de gehele database en de bedragen hierbij?
Wie kan en wil me hierbij helpen?
Groetjes,
Nanno
Ik heb nu dit:
$sql6 = "SELECT SUM(Kaarten * Aangepaste_prijs) FROM Kaarten";
$result6 = mysql_query($sql6);
Als ik $result6 echo, dan krijg ik dit: Resource id #1135
De prijs staat in de database als 9.50
Ik zou graag het totaalbedrag met decimalen willen zien. Hoe voer ik dit uit?
P.S. De tabel heet Kaarten en de kolom aantal heet ook Kaarten. Was toen een beetje dom bedacht van mezelf.
Gewijzigd op 26/05/2016 21:40:05 door Nanno Koerts
Verder zijn de mysql_*() functies ook verouderd. Gebruik liever MySQLi of PDO.
Met deze regel krijg je het aantal bestelde kaarten met totaalprijs per klant :
Code (php)
1
SELECT klant_naam AS klant , "9,50" AS prijs, SUM(klant_besteld) AS aantal, SUM(klant_besteld) * 9.50 AS totaal FROM bestellingen WHERE klant_id <= 5 GROUP BY klant_id;
Met deze regel krijg je het totaal bestelde kaarten met totaalprijs :
Code (php)
1
SELECT "9,50" AS prijs, SUM(klant_besteld) AS aantal, SUM(klant_besteld) * 9.50 AS totaal FROM bestellingen WHERE klant_id <= 5;
De WHERE moet je naar eigen inzicht gebruiken.
Bovenstaand kan je vinden in de MySQL handleiding.
Met PHP kan je de velden invullen m.b.v. variabelen.
PS de queries had ik al voorbereid, ze komen dus niet overeen met de latere posts.
Voor weergave met 2 decimalen, kun je doen:
ROUND(SUM(Kaarten * Aangepaste_prijs), 2)
Toevoeging op 26/05/2016 22:02:50:
@Adoptive, het is een goede gewoonte en aanrader om bij GROUP BY alle velden te noemen die niet als SUM ,MAX, MIN, of dergelijke worden gebruikt.
Dus ik zou dit doen:
http://adoptive.esy.es/kaartjes/
Hier de code :
http://adoptive.esy.es/kaartjes/kaartjes.txt
E.e.a. is wat aangepast, maar resultaat is hetzelfde.
@Adoptive: leuk dat je een voorbeeld online zet, maar zet je SQL mode eens op strict, dan zie je dat je queries niet kloppen.