Daniela Koller: sql abfrage problem verknuepfung zweier tabellen

Beitrag lesen

Hi Christian

jetzt moechte ich tabelle eins so mit tabelle zwei verknuepfen, daß
jeder kunde mit seiner kundennummer und dem datum daß am naechsten vor
dem datum in tabelle eins liegt verknuepft ist.

ergebnis:
kunde a  12.03.2002  10.03.2002
kunde b  14.05.2002  14.05.2002
kunde c  01.07.2002  06.05.2002

select kunde_1, kunde_2, datum_1, datum_2
from tabelle_1, tabelle_2
where kunde_1 = kunde_2 and ????

wie muß die where bedingung lauten?

Du brauchst mehr als nur eine where Bedingung.
Du willst pro Eintrag aus Tabelle a einen eintrag
aus Tabelle b, das hört sich nach einem Grouping an, dann
willst du eine Funktion wie min und max, das hört sich
noch viel mehr nach Grouping an, daraus folgt:

select kunde_1, datum_1, max(datum_2)
  from tabelle_1, tabelle_2
  where kunde_1 = kunde_2
    and datum_2 <= datum_1
  group by kunde_1, datum_1

Ich nehme an, du hattest die zwei kunden nur zu debug-Zwecken
drin, die müssen ja identisch sein. Das Group by macht, das du pro kunde und datum jeweils das höchste Datum kriegst, der
zweite Vergleich im Where macht, dass alle Daten, die grösser
als das passende von Tabelle 1 sind, ausgeschlossen werden.

Lies dir dazu auch mal den Tipps und Tricks zu dem Thema durch:
http://aktuell.de.selfhtml.org/tippstricks/datenbanken/having/index.htm

Gruss Daniela

--
Nein, wir frieren unsere Hühner nicht auf Gletschern fest.
Selfcode: sh:) fo:) ch:) rl:) br:> n4:| ie:{ mo:) va:) de:] zu:} fl:( ss:) ls:&