Hallo allemaal,

Het SUM-gedeelte in onderstaande query werkt niet. Wat doe ik fout?? Het sommeert niet.


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";




George
laten we dit eens uitwerken:

SUM(IF(month(factuurdatum) = 1,'Ja', NULL)) AS januari_totaal,

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.
En niet nagedacht blijkbaar over het feit dat COUNT simpelweg het aantal niet NULL rijen telt en SUM de waardes uit de geselecteerde rijen telt.

Maar wat had je dan verwacht, dat SUM maar een zelf gekozen waarde gebruikt om op te tellen?

Reageren