Er zijn twee tabellen in een MySQL-database
ORDERS
ORDERREGELS
Nu wil ik met één select uit de database het totaal van AdmKosten en het totaal van Prijs hebben voor de klant met KlantID = 1, dus de totalen van beide orders.
Ik heb het als volgt geprobeerd:
Resultaat is dan het volgende:
PrijsTot is netjes een optelling van de prijzen. Deze waarde klopt. AdmTot klopt echter niet, dit is ook logisch want door de join komt hij de AdmKosten in elke regel tegen.
Is er een manier om beide totalen correct te krijgen binnen een enkele select?
ORDERS
| OrderID | KlantID | AdmKosten |
| 1 | 1 | 10 |
| 2 | 1 | 5 |
ORDERREGELS
| OrderID | ArtikelID | Prijs |
| 1 | 1 | 25 |
| 1 | 2 | 50 |
| 2 | 1 | 25 |
| 2 | 2 | 50 |
Nu wil ik met één select uit de database het totaal van AdmKosten en het totaal van Prijs hebben voor de klant met KlantID = 1, dus de totalen van beide orders.
Ik heb het als volgt geprobeerd:
SQL:
1
2
3
4
5
6
7
8
9
10
11
| SELECT SUM(O.AdmKosten) AS AdmTot, SUM(R.Prijs) AS AdmTot FROM orders O LEFT JOIN orderregels R ON (O.OrderID = R.OrderID) WHERE O.KlantID = 1 GROUP BY O.KlantID |
Resultaat is dan het volgende:
| AdmTot | PrijsTot |
| 30 | 150 |
PrijsTot is netjes een optelling van de prijzen. Deze waarde klopt. AdmTot klopt echter niet, dit is ook logisch want door de join komt hij de AdmKosten in elke regel tegen.
Is er een manier om beide totalen correct te krijgen binnen een enkele select?