Meine aktuelle MySQL-Abfrage:Gruppieren von Daten nach Jahr - Rück 0 für keine Ergebnisse
SELECT MAX(s.con_grade) AS max, YEAR(u.sent_date) AS year
FROM pdb_usersectionmap u
LEFT JOIN pdb_sections s ON u.section_id = s.id
WHERE u.user_id =21
AND YEAR(u.sent_date) > '2004-01-01'
GROUP BY YEAR(u.sent_date)
ORDER BY u.sent_date ASC
(Das Jahr und User_id werden dynamisch in PHP generiert)
Ich versuche Ergebnisse für das zum Anzeigen letzten 5 Jahren. Unter bestimmten Umständen hat der Benutzer möglicherweise keinen MAX für dieses Jahr. Zum Beispiel diese Benutzer hat nur die Einträge in den letzten 3 Jahren (aber keine Jahre davor):
max year
5 2007
6.05 2008
7 2009
Meine Frage: Wenn ich MySQL anweisen, für Einträge in bestimmten Jahren aussehen wird, ist es eine Möglichkeit, für MySQL, um "0" für das Jahr zurückzugeben, wenn keine Einträge gefunden werden?
Im Idealfall würde ich gerne für die Ausgabe sein (würde mir eine Menge Zeit sparen):
year max
2005 0
2006 0
2007 5
2008 6.05
2009 7
# 1582 - Falsche Parameteranzahl beim Aufruf der nativen Funktion 'ISNULL' Sollte es IFNULL sein? – jmccartie
ah, vielleicht. Ich nehme an, dass ich angenommen habe, dass mysql ein isnull hat, was eine mssql-Funktion ist. Ich bin mir sicher, dass es ein Äquivalent gibt. – Daniel