Som maken van verschillende velden in een tabel
Code (php)
1
$sql = "SELECT offertenr, SUM(tot_prijs) FROM offertes WHERE status = 'Hold' GROUP BY offertenr";
Het probleem is hier dat ik meerdere rijen krijg in mijn while loop. Dit mag niet gebeuren. Er moet gewoon een som gemaakt worden van het veld 'tot_prijs' in de offertes tabel waar alle offertenummers moeten samengezet worden en waar de status 'Hold' is. Een offertenummer kan meermaals voorkomen omdat alle lijnen apart worden opgeslagen met hetzelfde offertenummer.
Wie kan mij hiermee helpen?
Gewijzigd op 26/11/2014 18:13:44 door Brecht S
Als je het complete totaal wilt hebben, dan moet je niet de kolom offertenr in de SELECT opnemen, en kan ook de GROUP BY in zijn geheel vervallen.
SELECT SUM(tot_prijs)
FROM offertes
WHERE offertenr = 100
AND status = 'Hold'
@ Aad: Ik wil hier niet het complete totaal hebben maar per offertenummer het totaal. Er zitten meerdere offertes in het systeem uiteraard. Dus ieder offertenummer mag maar 1 keer worden weergegeven met de daarbijhorende tot_prijs som.
Wat er wel belangrijk is:
Er zijn meerdere dezelfde offertenummers maar ook meerdere dezelfde statuscodes. Denk dat daar het probleem zit. Denk dat ik hier een dubbele query ineen nodig heb. Alleen weet ik totaal niet hoe ik die kan opbouwen.
Gewijzigd op 26/11/2014 18:23:18 door Brecht S
SELECT offertenr, SUM(tot_prijs) FROM offertes WHERE status = 'Hold' GROUP BY offertenr
Hiermee krijg je:
per offertenummer het totaal voor de offertes die op 'Hold' staan.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql_sum = mysql_query("
SELECT offertenr, SUM(tot_prijs)
FROM offertes
WHERE status='HOLD'
GROUP BY offertenr
");
?>
$sql_sum = mysql_query("
SELECT offertenr, SUM(tot_prijs)
FROM offertes
WHERE status='HOLD'
GROUP BY offertenr
");
?>
Deze zou moeten werken.
In theorie is dit wel juist maar mag niet in de praktijk. Ik heb momenteel verschillende offertenummers die goed gegroepeerd en samengeteld worden maar er zijn ook meerdere statussen die Hold zijn.
Het resultaat dat ik nu terugkrijg zijn 4 rijen en als ik in database kijk zijn er inderdaad 4 offertes die de status Hold hebben maar die statussen moeten ook nog een samengeteld worden.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
offertnr status tot_prijs
123 Hold 100
123 x 200
456 Hold 300
789 Hold 400
999 Hold 500
999 Hold 600
123 Hold 100
123 x 200
456 Hold 300
789 Hold 400
999 Hold 500
999 Hold 600
Vertel maar wat je hier dan zou willen zien.
Ik vermoed namelijk dat wat jij wilt niet kan
Gewijzigd op 26/11/2014 19:17:44 door Aad B
Maar het moet dit zijn:
Offertenr speelt hier geen rol meer. Enkel de status 'Hold' is nog belangrijk anders is het niet mogelijk denk ik.
Gewijzigd op 26/11/2014 19:18:08 door Brecht S
Code (php)
1
2
3
2
3
SELECT '--' as offertenr, 'Hold' as status, SUM(tot_prijs)
FROM offertes WHERE status = 'Hold'
GROUP BY offertenr;
FROM offertes WHERE status = 'Hold'
GROUP BY offertenr;
of eigenlijk zoals ik al eerder aangaf:
Gewijzigd op 26/11/2014 19:22:27 door Aad B
Gewijzigd op 26/11/2014 19:25:41 door Aad B
Ik heb enkele aanpassingen gedaan aan mijn gehele script en zit terug met een klein probleem. Post ik die nu best eens opnieuw of update ik beter deze vraag?