[MySQL] Timestamp und Monat/Jahr kombiniert

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

[MySQL] Timestamp und Monat/Jahr kombiniert

Beitrag von Dennis63 »

Hallo

Ich habe zwei MySQL Tabellen. Die eine hat einen Time-Stamp + ID und die andere "Monat", "Jahr" und "Count".

Beispiel:

Code: Alles auswählen

Tabelle 1
Timespamp  |  Active
-----------+--------
1088895600 |  1
1089414000 |  0
1092092400 |  1

Tabelle 2
mm  |   jjjj  |   count
----+---------+------
07  |   2004  |   100
08  |   2004  |   200
Der 1. und 2. TimeStamp ist von 07/2004 und der 3. von 08/2004.

Und ich möchte jetzt die Anzahl der Einträge der Tabelle eins gegenüber der count aus Tabelle 2 ausgeben.

Das Ergebnis sollte also so aussehen:

Code: Alles auswählen

Ergebnis:
mm  |   jjjj  |   count  | count_von_tab_1
----+---------+----------+----------------
07  |   2004  |   100    |  1
08  |   2004  |   200    |  1
Bloss wie bekomme ich genau das so hin? Ich könnte natürlich auch erst Tabelle 2 auslesen und dann für jeden Eintrag einzelnd per SELECT (...) count (...) group (...) die Anzahl aus Tabelle 1 holen. Da gehen die MySQL-Querys aber stark nach oben.
Hat da wer ne Idee? Oder geht das nicht, weil ja jeder Monat unterschiedlich lang ist und somit die TimeStamps ja mal weiter und mal kürzer auseinander laufen?

Grüße
Dennis
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Bevor sich jemand anderes in das MySQL-Manual aufmacht: ich mach's schon... :wink:
Braucht halt ein paar Minuten...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

So, da ist er:

Code: Alles auswählen

SELECT t2.mm, t2.jjjj, t2.count, Sum(t1.Active) count_von_tab_1
FROM Tabelle_1 t1, Tabelle_2 t2
WHERE MONTH(FROM_UNIXTIME(t1.Timestamp)) = t2.mm AND YEAR(FROM_UNIXTIME(t1.Timestamp)) = t2.jjjj
GROUP BY t2.mm, t2.jjjj, t2.count
Ungetestet aber mit positiver Wahrscheinlichkeit :-D

Gruß & N8,

Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

Boa... Phillip, Du bist der Beste !!

MONTH(FROM_UNIXTIME(t1.Timestamp))

Genau das ist es, was ich suche!

D A N K E !!!!


Grüße
Dennis
Antworten

Zurück zu „Coding & Technik“