SQL - Nach Jahr gruppieren

Sasser

Erfahrenes Mitglied
Guten Tag!

Ich versuche verzweifelt eine Statistik zu erstellen. Und zwar befindet sich das Datum im Format "mm-dd-jjjj" in meiner DB. Nun möchte ich gern nach Jahr gruppieren. Allerdings will es einfach nicht, was mache ich falsch?

PHP:
$result = mysql_query ( "SELECT DATE_FORMAT(`date`, '%Y') AS item, SUM(`amount`) AS amounts FROM transactions GROUP BY item ORDER BY item ASC" );

Es wird mir immer nur 1 Datensatz ausgegeben, obwohl es mindestens 3 sein müssten!?
 
Hmm nun bekomme ich überhaupt nichts mehr augegeben!?

PHP:
$result = mysql_query ( "SELECT DATE_FORMAT(`date`, '%Y') AS item, SUM(`amount`) AS amounts FROM transactions ORDER BY item ASC" );
 
Hi,

die Abfrage schlägt ja auch fehl, wenn man die Gruppierung rausnimmt. Ohne Gruppierung keine Aggregation.
Du bist nun übrigens auch schon so lange dabei, dass man Dir doch nicht jedesmal sagen muss, dass in der Entwicklungsphase das error_reporting aufgedreht gehört und MySQL-Fehler mit mysql_error() ausgegeben werden...

Was steht denn nach Deiner ursprünglichen Abfrage in "item"?

LG
 
Es ist doch einfach nur das Format des Datums falsch, wie man sicherlich leicht am Ergebnis von DATE_FORMAT erkennen kann...
Wenn man es in der DB nicht umstellen will, lässt sich das aber mit STR_TO_DATE() in der Abfrage lösen.

LG
 
"item" ist das zuvor definierte:

Code:
DATE_FORMAT(`date`, '%Y') AS item

Ich nutze aber das Datumsformat schon immer in diesem Format. In einem früheren Threat wurde mir sogar dazu geraten und ich habe das komplette System danach umgestellt!?

Es muss doch möglich sein, aus dem Datum das Jahr herauszufiltern und dann danach zu gruppieren oder?
 

Neue Beiträge

Zurück