Heb een probleem met een query en ik kom er zo 123 niet uit. Ik heb 3 tabellen:
customers
:fill(white):strip_exif()/f/image/see5Vy8hKn15T39ef8lNiIev.png?f=user_large)
products
:fill(white):strip_exif()/f/image/XfhyfXzOaxDfoyUf6RcUDczo.png?f=user_large)
sales
:fill(white):strip_exif()/f/image/eIHRaMQh7PIW9rwPN3ZMujqy.png?f=user_large)
Ik wil per emailadres uit customers het totaal aantal producten berekenen (een count van het aantal rijen in sales), en de totale omzet (aantal rijen in sales * price in products).
Nu heb ik bijna wat ik wil:
:fill(white):strip_exif()/f/image/X51AUgfUSgv4fIqMyyfmyl9Z.png?f=user_large)
Het enige probleem is dat ik ze niet gegroepeerd krijg per email adres. Ik wil dat de klant michael@email.com een omzet van 260000 genereerd, in plaats van 2 losse rijen.
Mijn query is als volgt:
Als ik een group by c.email doe dan pakt hij alleen 1 rij die hij vindt van bij klant maar dit is niet wat ik wil (ik wil het totaal van alle rijen in sales):
:fill(white):strip_exif()/f/image/m51tHZyt2Y5JYomsOtPONjbO.png?f=user_large)
Hoe kan ik dit voor elkaar krijgen?
customers
:fill(white):strip_exif()/f/image/see5Vy8hKn15T39ef8lNiIev.png?f=user_large)
products
:fill(white):strip_exif()/f/image/XfhyfXzOaxDfoyUf6RcUDczo.png?f=user_large)
sales
:fill(white):strip_exif()/f/image/eIHRaMQh7PIW9rwPN3ZMujqy.png?f=user_large)
Ik wil per emailadres uit customers het totaal aantal producten berekenen (een count van het aantal rijen in sales), en de totale omzet (aantal rijen in sales * price in products).
Nu heb ik bijna wat ik wil:
:fill(white):strip_exif()/f/image/X51AUgfUSgv4fIqMyyfmyl9Z.png?f=user_large)
Het enige probleem is dat ik ze niet gegroepeerd krijg per email adres. Ik wil dat de klant michael@email.com een omzet van 260000 genereerd, in plaats van 2 losse rijen.
Mijn query is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| select c.email, total_products, revenue from customers c left join (select product_id, email, count(product_id) as total_products, products.price * count(sales.product_id) as revenue from sales, products where products.id = sales.product_id group by sales.product_id, email ) s on s.email = c.email left join ( select products.id as product_id, products.name as product_name from products group by products.id ) p on p.product_id = s.product_id |
Als ik een group by c.email doe dan pakt hij alleen 1 rij die hij vindt van bij klant maar dit is niet wat ik wil (ik wil het totaal van alle rijen in sales):
:fill(white):strip_exif()/f/image/m51tHZyt2Y5JYomsOtPONjbO.png?f=user_large)
Hoe kan ik dit voor elkaar krijgen?