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?