Maak een SQL-query om de totale verkoop voor elke productcategorie in het laatste kwartaal te berekenen
description
Gebruikers krijgen inzicht in hun verkoopprestaties per categorie, wat betere strategische beslissingen en beheer van voorraad en marketinginspanningen mogelijk maakt.
prompt
try_prompt
Help me een SQL-query opstellen die de totale verkoop voor elke productcategorie tijdens het laatste kwartaal samenvat. Mijn databa ... more
generate_helper
...
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een MySQL-query om de totale verkoop per productcategorie te berekenen voor het laatste kwartaal:
```sql
SELECT
c.categorie_naam,
SUM(v.verkoop_bedrag) AS totale_verkoop
FROM
verkoop v
JOIN
producten p ON v.product_id = p.product_id
JOIN
categorie c ON p.categorie_id = c.categorie_id
WHERE
v.verkoop_datum >= DATE_SUB(CURDATE(), INTERVAL 3 MONTH)
GROUP BY
c.categorie_naam;
```
**Uitleg:**
- **FROM en JOINs:** We verbinden de tabellen `verkoop`, `producten` en `categorie` om de verkoopgegevens te koppelen aan de productcategorieën.
- **WHERE-clausule:** Filtert de verkopen op datums binnen de laatste 3 maanden vanaf vandaag (`CURDATE()`). Dit geeft het laatste kwartaal.
- **GROUP BY:** Groepeert de resultaten per categorie naam.
- **SUM:** Telt de verkoopbedragen op voor elke categorie.
**Hoe te interpreteren:**
De resultaten tonen voor elke productcategorie (`categorie_naam`) de totale verkoopwaarde (`totale_verkoop`) binnen het laatste kwartaal. Zo kun je zien welke categorieën het meest hebben bijgedragen aan de omzet in die periode.
provider: deepseek
model: deepseek-chat
Hier is de SQL-query voor MySQL om de totale verkoop per productcategorie in het laatste kwartaal samen te vatten:
```sql
SELECT
p.categorie,
SUM(v.bedrag) as totale_verkoop,
COUNT(v.verkoop_id) as aantal_transacties,
DATE_FORMAT(MAX(v.datum), '%Y-%m-%d') as laatste_verkoopdatum
FROM
verkoop v
INNER JOIN
producten p ON v.product_id = p.product_id
WHERE
v.datum >= DATE_SUB(LAST_DAY(CURDATE()), INTERVAL DAY(LAST_DAY(CURDATE())) - 1 DAY) - INTERVAL 3 MONTH
AND v.datum < DATE_SUB(LAST_DAY(CURDATE()), INTERVAL DAY(LAST_DAY(CURDATE())) - 1 DAY) - INTERVAL 0 MONTH
GROUP BY
p.categorie
ORDER BY
totale_verkoop DESC;
```
**Alternatieve, eenvoudigere versie:**
```sql
SELECT
p.categorie,
SUM(v.bedrag) as totale_verkoop,
COUNT(v.verkoop_id) as aantal_transacties
FROM
verkoop v
INNER JOIN
producten p ON v.product_id = p.product_id
WHERE
v.datum >= DATE_FORMAT(NOW() - INTERVAL 3 MONTH, '%Y-%m-01')
AND v.datum < DATE_FORMAT(NOW(), '%Y-%m-01')
GROUP BY
p.categorie
ORDER BY
totale_verkoop DESC;
```
**Uitleg van de query:**
- **`WHERE` clause**: Filtert op het laatste volledige kwartaal (laatste 3 maanden)
- **`SUM(v.bedrag)`**: Bereken de totale verkoopwaarde per categorie
- **`COUNT(v.verkoop_id)`**: Telt het aantal transacties per categorie
- **`GROUP BY p.categorie`**: Groepeert de resultaten per productcategorie
**Hoe de resultaten te interpreteren:**
1. **categorie**: De naam van de productcategorie
2. **totale_verkoop**: Het totale verkoopbedrag in deze categorie gedurende het laatste kwartaal
3. **aantal_transacties**: Hoeveel verkooptransacties er waren in deze categorie
4. **Resultaten zijn gesorteerd** op totale verkoop (hoogste eerst)
**Voorbeeld interpretatie:**
- Categorieën met de hoogste `totale_verkoop` zijn je best presterende categorieën
- Vergelijk `aantal_transacties` met `totale_verkoop` om de gemiddelde transactiewaarde te bepalen
- Categorieën met hoge verkoop maar weinig transacties hebben mogelijk duurdere producten
*Let op: Pas de tabel- en kolomnamen aan volgens jouw database-structuur.*

