Hallo Erik,
Du erliegst mit dem folgenden Statement einem typischen MySQL-Problem:
SELECT 1 * (spalte1 IN('wert1', 'wert2', 'wert3') ) + 2 * (spalte1 IN('wert4', 'wert5')) AS daten, SUM(spalte2) as anzahl FROM tabelle GROUP BY spalte1
Alle anderen mir bekannten Datenbankmanagementsysteme weisen dieses Statement als syntaktisch falsch zurück, da die Gruppierung nach Deiner berechneten Spalte 'daten' fehlt. Klar, der Inhalt von 'daten' ist durch den Inhalt von 'spalte1' eindeutig bestimmt, also gruppiere auch nach der 'daten'-Spalte.
spalte1|spalte2
wert1|1
wert2|1
wert3|1
wert4|1
wert5|1Unter MySQL 4.1.x bekomme ich als Ergebniss 2 Werte.
Unter MySQL 5.0.x bekomme ich als Ergebniss 5 Werte.
Welches x bei 5.0.x?
Bei gleichem Datenbestand? Lustig.
Wenn in Spalte1 fünf verschiedene Werte stehen, ist das Ergebnis von MySQL 5.0.x korrekt und das von MySQL 4.1.x falsch.
Stehen in Spalte1 zwei verschiedene Werte, so ist das Ergebnis von MySQL 4.1.x korrekt und das von MySQL 4.1.x falsch.
Was muss ich ändern damit ich weiterhin nur 2 Werte erhalte.
Deine berechnete Spalte 'daten' kann bis zu vier verschiedene Werte annehmen. Möchtest Du nach dieser Spalte gruppieren? Wenn ja, so tue dies - und gruppiere nicht nach 'spalte1'.
Freundliche Grüße
Vinzenz