Ich weiß nicht mehr weiter...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ich weiß nicht mehr weiter...

    Ich hab echt ein Problem.

    Ich hab zwei Tabellen.

    Tabelle1:
    Team_id, Datum, Wert

    Also zB.
    1, 2004-06-07, 24
    1, 2003-05-14, 28

    Tabelle2:
    Team_id, Datum, Wert

    z.B.
    1, 2004-01-01, 12
    1, 2003-01-01, 14


    Ich würde jetzt gern diese Tabellen zusammenfügen.
    Und zwar so daß für jedes Datum aus der Tabelle 1, das Datum und der Wert genommen wird und aus Tabelle2 das Datum und der Wert der als erstes vor dem Datum von Tabelle1 war.

    Das Ergebnis soll also so aussehen:
    2004-06-07 / 24 / 2004-01-01 / 12
    2003-05-14 / 28 / 2003-01-01 / 14

    Irgendwie weiß ich gar nicht ob das geht...

    Hab bisher
    SELECT t1.datum, t1.wert, t2.datum, t2.wert
    FROM tabelle1 AS t1
    LEFT JOIN tabelle AS t2 USING (team_id)
    WHERE t1.datum >= t2.datum AND t1.team_id = 1

    Da kommt dann aber
    2004-06-07 / 24 / 2004-01-01 / 12
    2004-06-07 / 24 / 2003-01-01 / 14
    2003-05-14 / 28 / 2003-01-01 / 14
    raus

    Hat jemand ne Idee? Hab MySQL 4.0.17

  • #2
    Hallo!
    Der SQL liefert Dir schon 'mal dalles ausser dem Wert der 2. Tabelle:

    SELECT
    A.teamid,
    A.datum,
    A.wert, max(B.datum) as maxdatum
    FROM tabelle1 A
    LEFT JOIN tabelle2 B on A.teamid=B.teamid
    WHERE A.datum >= B.datum
    group by
    A.teamid,
    A.datum,
    A.wert

    Was fehlt ist der Wert der 2. Tabelle, er kann auch hier nicht mehr dazugenommen werden.

    Es ist also noch ein Query mit Join nötig.
    Die obenstehende Abfrage dann: create temporary table tmp select ...
    Dann: select ... from tmp left join tabelle2 on maxdatum=datum and...

    Kommentar

    Lädt...
    X