104128
09.05.2012, aktualisiert um 11:23:18 Uhr
8052
5
0
Monatlich Auswertung der letzten 2 Jahre ab heutigem Datum
Folgendes habe ich vor:
Es liegt eine Datenbank vor mit einem Datumsfeld im Format "YYYY-MM-DD" welches ich auch nicht beeinflussen kann. Ich möchte nun eine automatisierte Auswertung tätigen, bei dem ab heute 2 Jahre zurück gerechnet wird und mir die Zahlen Monatsweise ausgegeben werden.
Als Beispiel:
Ich möchte den Zeitraum 09.05.2010 - 09.05.2012 auswerten. Die Daten aus der Datenbank auslesen ist nicht das Problem - das Problem besteht in der zeitlichen Berechnung.
Die Queries an die MySQL würden lauten:
"SELECT * FROM daten WHERE datum BETWEEN "2010-01-01" AND "2010-01-31"
"SELECT * FROM daten WHERE datum BETWEEN "2010-02-01" AND "2010-02-28"
"SELECT * FROM daten WHERE datum BETWEEN "2010-03-01" AND "2010-02-31"
...
Alternativ könnte ich auch alle Daten der letzten 2 Jahre in ein Array lesen:
"SELECT * FROM daten WHERE datum BETWEEN "2010-01-01" AND "2012-05-09"
nur wie bekomme ich dann immer die einzelnen Monate aus dem Array?
Die Ausgabe sollte dann als Tabelle erfolgen (nachfolgend Beispielspalten):
ID | Jan 10 | Feb 10 | Mrz 10 | April 10 | ... | Mrz 12 | Apr 12 | Mai 12
Hat jemand einen Lösungsansatz für mich?? ;-D
### EDIT ###
Die Datensätze sind nach Tagen gespeichert. Es gibt also z. B. mehrere Datensätze mit "2011-05-05" oder ähnlichem.
Es liegt eine Datenbank vor mit einem Datumsfeld im Format "YYYY-MM-DD" welches ich auch nicht beeinflussen kann. Ich möchte nun eine automatisierte Auswertung tätigen, bei dem ab heute 2 Jahre zurück gerechnet wird und mir die Zahlen Monatsweise ausgegeben werden.
Als Beispiel:
Ich möchte den Zeitraum 09.05.2010 - 09.05.2012 auswerten. Die Daten aus der Datenbank auslesen ist nicht das Problem - das Problem besteht in der zeitlichen Berechnung.
Die Queries an die MySQL würden lauten:
"SELECT * FROM daten WHERE datum BETWEEN "2010-01-01" AND "2010-01-31"
"SELECT * FROM daten WHERE datum BETWEEN "2010-02-01" AND "2010-02-28"
"SELECT * FROM daten WHERE datum BETWEEN "2010-03-01" AND "2010-02-31"
...
Alternativ könnte ich auch alle Daten der letzten 2 Jahre in ein Array lesen:
"SELECT * FROM daten WHERE datum BETWEEN "2010-01-01" AND "2012-05-09"
nur wie bekomme ich dann immer die einzelnen Monate aus dem Array?
Die Ausgabe sollte dann als Tabelle erfolgen (nachfolgend Beispielspalten):
ID | Jan 10 | Feb 10 | Mrz 10 | April 10 | ... | Mrz 12 | Apr 12 | Mai 12
Hat jemand einen Lösungsansatz für mich?? ;-D
### EDIT ###
Die Datensätze sind nach Tagen gespeichert. Es gibt also z. B. mehrere Datensätze mit "2011-05-05" oder ähnlichem.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 184699
Url: https://administrator.de/contentid/184699
Ausgedruckt am: 25.11.2024 um 18:11 Uhr
5 Kommentare
Neuester Kommentar
Guck noch mal hier:
http://www.w3schools.com/sql/func_date_format.asp
http://www.w3schools.com/sql/func_date_format.asp