Hallo Vinzenz,
Du hast leider den relevanten Teil ausgelassen: die Spaltendefinitionen.
Kannst Du mir erklären, warum die relevant für das Problem ist? Ich dachte, es geht um den verwendeten Zeichensatz??
Welche Joinbedingung erzeugt den Fehler?
ON t.Monat = s.ym
?
Ja. Davon gehe ich aus, weil die Subquery alleine funktioniert tadellos.
Übrigens, wenn ich die Subquery auflöse und es stattdessen über eine temporäre Tabelle mache, funktioniert alles tadellos:
CREATE TEPORARY TABLE praefix_monatsdaten
SELECT FROM_UNIXTIME(r.Timestamp, '%Y%|%m') AS ym,
sum(b.Menge*b.Preis*
(CASE
WHEN b.multi = 'ja' THEN 1
WHEN b.multi = '100' THEN 1
WHEN b.multi = '200' THEN 2.00
WHEN ISNULL(b.multi) THEN 1
END) ) AS count
FROM praefix_A b
JOIN praefix_B r
ON b.G_ID = r.G_ID
WHERE
loesch != 1
FROM_UNIXTIME(r.Timestamp) > NOW() - INTERVAL 1 YEAR
GROUP BY ym DESC;
SELECT t.Monat, m.COUNT as count
from praefix_tmp t
LEFT JOIN
praefix_monatsdaten m
ON t.Monat = m.ym
ORDER BY t.Monat DESC;
Diese beiden Queries bringen genau das Ergebnis, das auch die Subquery hätte erziehlen sollen.
Ich hoffe, das hilft weiter bei der Lösungssuche?
Gruß, Frank