ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
781
781
EMPFEHLEN
-
14.09.09 20:28 #1
- Registriert seit
- Sep 2009
- Beiträge
- 4
Hallo,
das ist der erste Eintrag in diesem Forum und ich hoffe Ihr könnt mir weiterhelfen. Mein Problem bekomme ich einfach nicht gelöst.
Ich habe eine mySQL DB wo zu jeder vollen Stunde ein Datensatz hinzukommt. Nun möchte ich die Datensätze nach Jahren und Monaten gruppieren, was auch schon funktioniert.
Code :1 2 3 4
SELECT * FROM `table` where year(datum) >'2007' GROUP BY YEAR(`datum`), MONTH(`datum`)
Das Problem ist nur, dass der gruppierte Monat den erste Tag zur ersten Stunde, also im Format 'YYYY-MM-01 00:00:00' anzeigen soll. Das hat die ersten Monate scheinbar zufällig mit der obrigen Abfrage funktioniert, aber seit 3 Monaten steht als Ergebnis irgend ein Tag dort.
Habt Ihr eine Idee, wie man das machen könnte?
MfG
Charlie2009
-
Hmm
warum möchtest du das Gruppieren?
Zum ordnen?
Wenn ja, dann könntes du mal das versuchen:
bzw DESC wenn es absteigend sein sollCode sql:1 2 3 4 5
SELECT * FROM `table` WHERE YEAR(datum) >'2007' ORDER BY UNIX_TIMESTAMP(datum) ASC

Ansonsten:
Code sql:1 2 3 4
SELECT * FROM `table` WHERE YEAR(datum) >'2007' GROUP BY YEAR(`datum`), MONTH(`datum`), DAY(`datum`), HOUR(`datum`)
Geändert von RaVenC (14.09.09 um 20:56 Uhr)
Sollte mein Beitrag geholfen haben (ausnahmsweise :D ), dann bitte mal nen Danke hinterlassen ^^
-
14.09.09 21:18 #3
- Registriert seit
- Sep 2009
- Beiträge
- 4
Danke für die Antwort, aber geht leider noch nicht.
Also mit der richtigen SQL Ausgabe mache ich noch einen Left Join, der aber nur funktioniert, wenn der erste des Monat und 00:00 angezeigt wird. Die Select Abfrage ist auch nur ein Beispiel. Dort werden normalerweise die Summen und Durchschnittswerte vom ganzen Monat erfasst. Ich habe das nur nicht erwähnt, um keine Verwirrung zu stiften.
Mfg
Charlie2009
-
Hallo,
wenn ein Datensatz für jede Stunde existiert, dann müsste es doch reichen, anstatt `datum` einfach MIN(`datum`) zu selektieren, oder?
Grüße, Matthias„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
14.09.09 22:27 #5
- Registriert seit
- Sep 2009
- Beiträge
- 4
Ja, er zeigt es dann zwar an, aber mir fehlt der "link2", der nur am ersten um 00:00 vorhanden ist. Mit dem Wert sollte dann ein Left Join gemacht werden.
Code :1 2 3 4 5 6 7 8 9 10
id datum wert1 wert2 link1 link2 7364 2009-01-01 00:00:00 62 -4 3 3 8108 2009-02-01 00:00:00 45 -1 4 3 8780 2009-03-01 00:00:00 3 6 4 3 9524 2009-04-01 00:00:00 0 4 5 4 10244 2009-05-01 00:00:00 0 11 5 4 10988 2009-06-01 00:00:00 0 16 5 4 11708 2009-07-01 00:00:00 0 19 5 4 15494 2009-08-31 21:00:00 0 18 5 0 15793 2009-09-13 08:00:00 0 14 5 0
Im Datensatz mit der ID vom ersten Tag des Monats um 00:00 Uhr steht auch ein link2 und diesen brauche ich, um einen Left Join zu machen. Es geht also nicht nur um die reine Anzeige. Komischerweise funktioniert es seit 2 Monaten nicht mehr. Es muss also so gruppiert werden, dass der erste Datensatz des Monats angezeigt wird. Die Werte1 und 2 kann ich mir dann mit Sum() um AVG() für den Monat errechnen lassen.
MfG
Charlie2009Geändert von charlie2009 (14.09.09 um 22:36 Uhr)
-
Hallo,
dann probier es mal so:
Code sql:1 2 3 4 5 6
SELECT * FROM `table` WHERE `datum` IN ( SELECT MIN(`datum`) FROM `table` WHERE YEAR(`datum`) > 2007 GROUP BY YEAR(`datum`), MONTH(`datum`) )
Grüße, Matthias„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
15.09.09 19:22 #7
- Registriert seit
- Sep 2009
- Beiträge
- 4
Hallo,
bei der Abfrage stürzt phpmyadmin regelrecht ab. Deshalb habe ich gestern auch nicht mehr geantwortet, weil ich dann jedesmal keinen Zugriff mehr hatte. Heute habe ich es auf meinem lokalen Rechner getestet und es passiert das gleiche. Erst nachdem ich Firefox neu starte kann ich wieder auf die DB zugreifen.
MfG
Charlie2009
Ähnliche Themen
-
[Excel 2007] Gruppieren nach Monat
Von Klein0r im Forum Office-AnwendungenAntworten: 5Letzter Beitrag: 27.01.09, 22:15 -
Datensätze nach Jahr und Monat filtern
Von Html im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 07.11.07, 20:50 -
Aus einem String ein Datum auslesen und dann einzeln nach Tag,Monat,Jahr ausgeben
Von oldboy im Forum JavaAntworten: 5Letzter Beitrag: 15.10.07, 16:56 -
Eingabefeld für Jahr, Monat/Jahr, Tag/Monat/Jahr
Von acky im Forum JavaAntworten: 0Letzter Beitrag: 24.07.05, 16:28





Zitieren

Login





