Ik kom nog niet uit deze query:
SELECT afdeling.afd, afdeling.afdnaam, artikel.kleur, COUNT(artikel.art)
FROM
verkart
INNER JOIN verkoop ON (verkart.art = verkoop.art) AND
(verkart.afd = verkoop.afd)
INNER JOIN afdeling ON (verkart.afd = afdeling.afd)
INNER JOIN artikel ON (verkart.art = artikel.art)
WHERE (artikel.kleur = 'geel')
GROUP BY afdeling.afd
Ik krijg hierbij als result het volgende:
+-----+--------------+-------+--------------------+
| afd | afdnaam | kleur | COUNT(artikel.art) |
+-----+--------------+-------+--------------------+
| 02 | Huishoud art | geel | 2 |
| 09 | Kleding | geel | 4 |
| 14 | Elektra | geel | 2 |
| 18 | Fotografie | geel | 1 |
| 23 | Stoffering | geel | 7 |
| 44 | Hobby | geel | 20 |
+-----+--------------+-------+--------------------+
Mijn vraag is nu hoe ik de afdelingen kan selecteren die voldoen aan de voorwaarde dat zij meer dan 1/10 van deze gele artikelen verkopen. Het totaal van alle counts is dus 36, waardoor ik de afdelingen moet hebben die meer dan 3,6 hebben als count. Ik heb nu als hulpsteuntje de count in de tabel erbij gezet, want ik mag natuurlijk niet in de HAVING in gaan vullen dat het meer als 3,6 is.
Ik moet iets gaan gebruiken als count(artikel.art) > SUM(COUNT(artikel.art))/10, maar dat lukt dus niet.
SELECT afdeling.afd, afdeling.afdnaam, artikel.kleur, COUNT(artikel.art)
FROM
verkart
INNER JOIN verkoop ON (verkart.art = verkoop.art) AND
(verkart.afd = verkoop.afd)
INNER JOIN afdeling ON (verkart.afd = afdeling.afd)
INNER JOIN artikel ON (verkart.art = artikel.art)
WHERE (artikel.kleur = 'geel')
GROUP BY afdeling.afd
Ik krijg hierbij als result het volgende:
+-----+--------------+-------+--------------------+
| afd | afdnaam | kleur | COUNT(artikel.art) |
+-----+--------------+-------+--------------------+
| 02 | Huishoud art | geel | 2 |
| 09 | Kleding | geel | 4 |
| 14 | Elektra | geel | 2 |
| 18 | Fotografie | geel | 1 |
| 23 | Stoffering | geel | 7 |
| 44 | Hobby | geel | 20 |
+-----+--------------+-------+--------------------+
Mijn vraag is nu hoe ik de afdelingen kan selecteren die voldoen aan de voorwaarde dat zij meer dan 1/10 van deze gele artikelen verkopen. Het totaal van alle counts is dus 36, waardoor ik de afdelingen moet hebben die meer dan 3,6 hebben als count. Ik heb nu als hulpsteuntje de count in de tabel erbij gezet, want ik mag natuurlijk niet in de HAVING in gaan vullen dat het meer als 3,6 is.
Ik moet iets gaan gebruiken als count(artikel.art) > SUM(COUNT(artikel.art))/10, maar dat lukt dus niet.