Franco: #1267 - Illegal mix of collations

Beitrag lesen

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