Hallo,
Ja, mit IF() oder CASE aus den Control-Flow-Functions.
Hab ich das missverstanden?
ja.
$query="SELECT FROM_UNIXTIME(timestamp, '%Y%|%m') AS ym, sum(MengePreisCASE 'berechnung' WHEN 'ja' THEN 100 WHEN 'nein' THEN 0 WHEN NULL THEN 100 END *(1-rabatt) ) AS count
FROM ausgaben
WHERE ...
GROUP BY ym DESC LIMIT 12
berechnung ist eine Spaltenbezeichnung. Spaltenbezeichner werden \*nicht\* mit Anführungszeichen (nicht mit einfachen, nicht mit doppelten) maskiert. In generiertem Code ist es eine gute Idee, alle Spaltenbezeichner zu maskieren, dann muss man sich über reservierte Wörter keine Gedanken machen. In handgeschriebenem Code bevorzuge ich Spaltennamen, die keine Maskierung erfordern.
> > Ist deine Where-Bedingung nicht ausreichend einschränkend formuliert?
> Doch ist sie.
.. dann benötigst Du keine Limitierung, weil Du maximal 12 Datensätze erhalten kannst.
> > - Erstell eine (temporäre) Tabelle mit den Zahlen von 1 bis 12. Bilde einen Left-Join mit der anderen Ergebnismenge.
> Und das alles in \_einer\_ Query??
Wenn die (Hilfs-)Tabelle nicht temporär ist, kommst Du natürlich mit einer Query aus.
Freundliche Grüße
Vinzenz