Hallo allemaal,

Ik zit met de volgende "uitdaging":

Onderstaande query (werkt overigens goed) geeft een output die qua lay-out net niet is wat ik wil.
Als ik deze query draai krijg ik:


maandnumm   artikelnummer    maand    aantal
        6     xxxxyyyyvvv     juni       10
        6     uuuuooopppp     juni        8
        7     xxxxyyyyvvv     juli        2


Terwijl ik eigenlijk deze outputvorm wil:

artikelnummer    januari   februari  maart ... juni   juli  ....  november  december
xxxxyyyyvvv           0          0      0        10      2              0          0
uuuuooopppp           0          0      0         0      2              0          0


Hoe moet ik nu onderstaande query ombouwen opdat ik deze output krijg?


select
   month(factuurdatum) as maandnum,
   artikelnummer,
   case
      when month(factuurdatum) = 1 then 'januari'
      when month(factuurdatum) = 2 then 'februari'
      when month(factuurdatum) = 3 then 'maart'
      when month(factuurdatum) = 4 then 'april'
      when month(factuurdatum) = 4 then 'mei'
      when month(factuurdatum) = 6 then 'juni'
      when month(factuurdatum) = 7 then 'juli'
      when month(factuurdatum) = 8 then 'augustus'
      when month(factuurdatum) = 9 then 'september'
      when month(factuurdatum) = 10 then 'oktober'
      when month(factuurdatum) = 11 then 'november'
      when month(factuurdatum) = 12 then 'december'
   end as maand,
   count(id) as aantal
from
   shop__bestellingen
group by
   month(factuurdatum),artikelnummer
order by
   maandnum, aantal desc


Wie heeft een suggestie?


George

Toevoeging op 20/07/2013 14:47:25:

Ik heb zelf een oplossing gevonden.

TOPIC GESLOTEN


select
            artikelnummer,
            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 jaugustus,
            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,
            COUNT(id) as totaal
        from
            shop__bestellingen
        group by
            artikelnummer
        order by
            totaal desc
Dit is nu precies zo iets dat ik NIET in sql zou oplossen, maar in php. Wat je nu aan het doen bent is namelijk presentatie proberen te regelen in de data laag van je applicatie. Wat als je morgen je site ook in het Engels wilt hebben ga je dan die maanden aanpassen in je query?

Reageren