Sommeren in query werkt niet
Het SUM-gedeelte in onderstaande query werkt niet. Wat doe ik fout?? Het sommeert niet.
Code (php)
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
32
33
34
35
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
32
33
34
35
select
c.artikelnummer,
c.titel,
c.uitvoerende,
COUNT(IF(month(factuurdatum) = 1, 'Ja', NULL)) AS januari,
COUNT(IF(month(factuurdatum) = 2, 'Ja', NULL)) AS februari,
COUNT(IF(month(factuurdatum) = 3, 'Ja', NULL)) AS maart,
COUNT(IF(month(factuurdatum) = 4, 'Ja', NULL)) AS april,
COUNT(IF(month(factuurdatum) = 5, 'Ja', NULL)) AS mei,
COUNT(IF(month(factuurdatum) = 6, 'Ja', NULL)) AS juni,
COUNT(IF(month(factuurdatum) = 7, 'Ja', NULL)) AS juli,
COUNT(IF(month(factuurdatum) = 8, 'Ja', NULL)) AS augustus,
COUNT(IF(month(factuurdatum) = 9, 'Ja', NULL)) AS september,
COUNT(IF(month(factuurdatum) = 10, 'Ja', NULL)) AS oktober,
COUNT(IF(month(factuurdatum) = 11, 'Ja', NULL)) AS november,
COUNT(IF(month(factuurdatum) = 12, 'Ja', NULL)) AS december,
SUM(IF(month(factuurdatum) = 1,'Ja', NULL)) AS januari_totaal,
COUNT(b.id) as totaal
from
shop__bestellingen as b
join
shop__cd as c
on
c.artikelnummer = b.artikelnummer
where
YEAR(factuurdatum) = $cJaar
group by
artikelnummer
order by
totaal desc
limit
$cHitLijst";
c.artikelnummer,
c.titel,
c.uitvoerende,
COUNT(IF(month(factuurdatum) = 1, 'Ja', NULL)) AS januari,
COUNT(IF(month(factuurdatum) = 2, 'Ja', NULL)) AS februari,
COUNT(IF(month(factuurdatum) = 3, 'Ja', NULL)) AS maart,
COUNT(IF(month(factuurdatum) = 4, 'Ja', NULL)) AS april,
COUNT(IF(month(factuurdatum) = 5, 'Ja', NULL)) AS mei,
COUNT(IF(month(factuurdatum) = 6, 'Ja', NULL)) AS juni,
COUNT(IF(month(factuurdatum) = 7, 'Ja', NULL)) AS juli,
COUNT(IF(month(factuurdatum) = 8, 'Ja', NULL)) AS augustus,
COUNT(IF(month(factuurdatum) = 9, 'Ja', NULL)) AS september,
COUNT(IF(month(factuurdatum) = 10, 'Ja', NULL)) AS oktober,
COUNT(IF(month(factuurdatum) = 11, 'Ja', NULL)) AS november,
COUNT(IF(month(factuurdatum) = 12, 'Ja', NULL)) AS december,
SUM(IF(month(factuurdatum) = 1,'Ja', NULL)) AS januari_totaal,
COUNT(b.id) as totaal
from
shop__bestellingen as b
join
shop__cd as c
on
c.artikelnummer = b.artikelnummer
where
YEAR(factuurdatum) = $cJaar
group by
artikelnummer
order by
totaal desc
limit
$cHitLijst";
George
Gewijzigd op 05/08/2013 12:11:22 door George van Baasbank
Dus als de maand van de factuurdatum gelijk is aan 1, dan krijg je een 'Ja', anders een NULL. Dus je krijgt een reeks 'Ja' en NULL en dat probeer je vervolgens op te tellen. Wat denk jij dat de uitkomst van 'Ja'+'Ja'+NULL+NULL is?
Omdat het bij COUNT wel goed gaat, heb ik dit overgenomen.
Maar wat had je dan verwacht, dat SUM maar een zelf gekozen waarde gebruikt om op te tellen?