Oracle: aktuellsten Datensatz anzeigen

Communicate

Mitglied
Hallo zusammen,

ich scheitere mal wieder an einem, für die Profis wahrscheinlich lächerlichem Problem.

Ich habe eine Tabelle Kundenstamm. Diese Tabelle wird über die Tabelle Historie historisiert.

Darauf zugreifen kann ich über die Felder table_name, col_name und pk_value und datum.

Ich möchte also in meinem Fall über die Tabelle Kundenstamm, die Spalte Limit mit Datum ausgegeben bekommen. Das klappt auch wunderbar, nur kann es zu einem Kunden mehrere Limitänderungen geben. Dann werden mir bei einem normalen Select ggf. mehrere Ergebnisse angezeigt, also z.b. so:

Kunde Meier, Limit 10, Datum 01.01.2000
Kunde Meier, Limit 15, Datum 01.02.2000
Kunde Meier, Limit 20, Datum 01.03.2005

Ich möchte jetzt aber nicht alle drei Datensätze, sondern nur den aktuellsten (in meinem Beispiel also zum Datum 01.03.2005).

Folgender Code führt leider zu einem Fehler (Ausdruck fehlt), vielleicht kann mir einer helfen, was ich falsch mache? ;-)

Code:
SQL> SELECT Kundenstamm.Kundenname_1,   
  2           historie.col_value_old,   
  3           historie.col_value_new,   
  4         historie.datum
  5      FROM Kundenstamm,   
  6           historie  
  7     WHERE 
  8    (historie.datum=Select Max(historie.datum) from historie)) and
  9    ( app_col_historisierung.table_name = 'Kundenstamm' ) AND  
 10           ( historie.col_name = 'Limit' ) AND  
 11           ( historie.pk_value = '('||Kundenstamm.Kunden_ID||')' ) ;
 
Zurück