2 Tabellen mit DATETIME mit JOIN verbinden

  • Beschäftige mich derzeit mit folgendem Problem.

    Ich habe 2 mySQL Tabellen

    1xKlimadaten (tabelle1) aus meiner Wetterstation (TFA Nexus), welche direkt aus einem DBase File importiert werden (bis heute ca.25000 Datensätze).

    pk Zeitpunkt InTemp InRF InTD S1Temp S1RF S1TD
    22533 2012-01-12 19:41:59 25.8 41 11.5 6 84 3.5
    22532 2012-01-12 19:12:00 25.6 41 11.4 6.1 85 3.8
    22531 2012-01-12 18:42:00 25.4 41 11.2 6 86 3.8
    22530 2012-01-12 18:11:59 25 41 10.8 6 87 4

    1xVerbrauchswerte (tabelle2) meiner Gasheizung (233 Datensätze).
    pk Zeitpunkt ZStand Verbrauch Brennwert Zustandszahl KWH EUR_KWH
    4 2010-09-04 00:00:00 529.66 15.67 11.201 0.947 166.22 0.0566
    5 2010-09-09 00:00:00 538 8.34 11.201 0.947 88.47 0.0566
    6 2010-09-14 00:00:00 543 5 11.201 0.947 53.04 0.0566


    Aus den beiden Tabellen soll eine Tabelle aufgebaut werden, welche mir die durchschnittliche Temperatur und den Verbrauch im Monat/Jahr oder Tag im Monat
    Mir ist klar das ich die Tabellen Joinen muss aber was ist die Referenz? YEAR(tabelle1.Zeitpunkt)=YEAR(tabelle2.Zeitpunkt) hab ich schon probiert, daß schiesst meinen Server ab.
    Versuch, allerdings ohne Erfolg:
    SELECT YEAR( k.Zeitpunkt) , MONTH(t1.Zeitpunkt), AVG( `S1Temp` ) , Max( `S1Temp` ) , Min( `S1Temp` ) , SUM(t2.Verbrauch) FROM tabelle1 as t1
    LEFT OUTER JOIN tabelle2 as t2 ON (YEAR(t1.Zeitpunkt) = YEAR(t2.Zeitpunkt) AND MONTH(t1.Zeitpunkt) = MONTH(t2.Zeitpunkt)) GROUP BY YEAR( k.Zeitpunkt ) , MONTH( k.Zeitpunkt )

    Mit der Thematik habe bislang noch keine passenden Eintrag gefunden
    Ich stehe echt auf dem Schlauch...

  • Vielleicht ist es auch nur ein Syntaxfehler? k.Zeitpunkt?
    probiers mal so:

    SQL
    SELECT YEAR(`t2`.`Zeitpunkt`), MONTH(`t1`.`Zeitpunkt`), AVG(`t1`.`S1Temp`), Max(`t1`.`S1Temp`), Min(`t1`.`S1Temp`), SUM(`t2`.`Verbrauch`) FROM `tabelle1` as `t1` LEFT OUTER JOIN `tabelle2` as `t2` ON (YEAR(`t1`.`Zeitpunkt`) = YEAR(`t2`.`Zeitpunkt`) AND MONTH(`t1`.`Zeitpunkt`) = MONTH(`t2`.`Zeitpunkt`)) GROUP BY YEAR(`t2`.`Zeitpunkt`), MONTH(`t2`.`Zeitpunkt`)

    hab das mal so grob nachgestellt und bei mir klappt es.
    Sonst stell doch mal ein Beispiel zu Verfügung, damit wir deinen Fehler nachstellen können ;)

    Gruß crAzywuLf :D

  • Danke, für deine Hilfe hat tatsächlich geklappt (dummer Syntaxfehler), die Anfrage dauerte jedoch 97 Sekunden und das Ergebnis des Verbrauchs war leider falsch :(

    Ergebnis:
    YEAR(`t1`.`Zeitpunkt`) MONTH(`t1`.`Zeitpunkt`) AVG(`t1`.`S1Temp`) Max(`t1`.`S1Temp`) Min(`t1`.`S1Temp`) SUM(`t2`.`Verbrauch`)
    2011 5 22.3882199207526 44.5 10.5 5156.99998292327
    2011 6 20.6134691094944 39.7 11.8 35432.2005923688
    2011 7 20.2178193425563 34.7 11.6 26633.9996031225
    etc.

    Die Verbrauchswerte allerdings sollten sein:

    YEAR(`Zeitpunkt`) MONTH(`Zeitpunkt`) SUM(`Verbrauch`)
    2011 5 13.4999999552965
    2011 6 8.20000013709068
    2011 7 5.99999991059303