Nachdem ich erstmal die Abfrage für den Inhalt hatte, wusste ich nicht genau wie ich das dann entsprechend übertragen kann.
Aktueller Ansatz ist folgender
SELECT jahr,
SUM(IF(monat = 1, ums, NULL)) jan, SUM(IF(monat = 2, ums, NULL)) feb, SUM(IF(monat = 3, ums, NULL)) mrz,
SUM(IF(monat = 4, ums, NULL)) apr, SUM(IF(monat = 5, ums, NULL)) mai, SUM(IF(monat = 6, ums, NULL)) jun,
SUM(IF(monat = 7, ums, NULL)) jul, SUM(IF(monat = 8, ums, NULL)) aug, SUM(IF(monat = 9, ums, NULL)) sep,
SUM(IF(monat = 10, ums, NULL)) okt, SUM(IF(monat = 11, ums, NULL)) nov, SUM(IF(monat = 12, ums, NULL)) dez
FROM (SELECT EXTRACT(MONTH FROM o.date_purchased) AS monat, EXTRACT(YEAR FROM o.date_purchased) AS jahr, format(SUM(ot.value),2) AS ums
FROM orders_total ot, orders o
WHERE o.orders_id=ot.orders_id
AND
class= "ot_subtotal"
GROUP BY 1,2 ) b
GROUP BY 1;
Jetzt weiß ich nur nicht wieso du 'b' für das Datum und 'ums' getrennt hast.
Bei meiner Lösung kommt mir das SUM doppelt gemoppelt vor, aber wenn ich das aus dem oberen SELECT raus nehme, klappt es nicht mehr