GROUP in MySQL

K@TooN

Grünschnabel
Hallo Freunde des Codings,

ich habe in meiner Datenbank diverse Eintrage mit Datum DD.MM.YYY eingetragen. Gibt es eine Möglichkeit, diese nach Monat zu groupieren oder muss ich nachträglich eine Tabelle für Monat (MM) anlegen.

Hab schon alles im Kopf durchgespielt mit For-Schleife und substr(); aber das kann nicht funktionieren.
 
Hey, klar geht das :)

group by EXTRACT($unit FROM datumsfeld);

Dabei kann $unit alles möglich sein - Beispiele: YEAR, MONTH, DAY, HOUR
in deinem Fall wohl MONTH ;) Wer hätts gedacht

lg
 
Das Datum steht in der Tabelle z.B. so 12.07.2008
Wie soll MySQL denn MONTH definieren?

PHP:
$listing = MYSQL_QUERY("SELECT EXTRACT(Month FROM Date) as month FROM nsi_order GROUP BY month");
            $num = MYSQL_NUM_ROWS($listing);
            for($l=0;$l<$num;$l++) {
               $month = MYSQL_RESULT($listing, $l, "month");
               print($month."<br>");
            }

Muss man zuvor vielleicht eine erste Abfrage machen, bei der das Datum ausgelesen wird.
Das Datum dann mit SUBSTR() auf Monat kürzen.
Und danach dann die Abfrage mit EXTRACT($substr-variable FROM Date) machen?
 
Ich hab dir doch oben ganz eindeutig den funktionsnamen und die anwendung geschrieben - das hast du nicht umgesetzt sondern nur bruchteile von meinem vorschlag genommen - dann wirds auch nichts ;)
Naja:

Ich bin jetz davon ausgegangen das das datum in einem feld mit datentyp date steht und nicht in varchar o.ä.

dann sieht das so aus:
PHP:
$anfrage = MYSQL_QUERY("SELECT * FROM nsi_order WHERE OrderID = '2' GROUP BY EXTRACT(MONTH FROM datumsfeld);");
 
Doch ich hab VARCHAR. Hättest Du meinen Post richtig gelesen, wärst Du darauf gestoßen, dass ich unwissend den falschen Spaltentyp benutzt habe :)
(Datumsformat DD.MM.YYYY)

Okay, hast mir trotzdem geholfen. Jetzt wo ich weiß an was es lag ....
 
Achso sorry ;)

Hoffe du erreichst nun das was du möchtest!
Falls du weitere Fragen hast poste ruhig!

Ansonsten das Thema als erledigt makieren ;)
Viel Erfolg
 
Okay, alle die das gleiche Problem wie ich hatten können in der MYSQL-TABELLE den Spaltentyp von VARCHAR auf DATE umstellen. Alle Daten werden automatisch in das richtige Format geändert. Keine Sorge, dass Euch die Tabelle flöten geht. Sicherheitshalber Exportieren.
 
Zurück