Krokowski: letztes Datum aus verschiedenen Tabellen ermitteln

Hallo Leuts,

ich brauche Eure Hilfe...

Ich bin gerade am probieren, wie ich mit einer Auswahlabfrage das letzte (am wenigsten Zeit ist zu heute vergangen) Datum aus verschiedenen Tabellen herauslesen kann. Dieses Datum kann dann für jeden Datensatz anders sein und soll in der Abfrage angezeigt werden. Auch mit SQL-Code komme ich nicht so richtig auf die gewünschten Ergebnisse.
Wahrscheinlich muss ich mich ziemlich doll schämen und in die Ecke Stellen, wenn ich die Antwort sehe... Würd mich aber trotzdem über Lösungsvorschläge freuen!

Danke

  1. Hi,

    Wahrscheinlich muss ich mich ziemlich doll schämen und in die Ecke Stellen, wenn ich die Antwort sehe... Würd mich aber trotzdem über Lösungsvorschläge freuen!

    schämen brauchst Du Dich nicht, aber Du solltest vielleicht etwas nähere Angaben zu dem von Dir verwendeten DBMS machen.

    MfG
    MarkX.

    1. Würde es einfach mal mit

      SELECT Max(Datum) AS Var FROM Tab;

      probieren.

      Hast ja leider nicht sehr genaue Angaben gemacht.

  2. Hallo,

    Ich bin gerade am probieren, wie ich mit einer Auswahlabfrage das letzte (am wenigsten Zeit ist zu heute vergangen) Datum aus verschiedenen Tabellen herauslesen kann.

    Mit Standard-SQL wirst Du nicht afaik nicht viel machen können. Einige Datenbanksysteme besitzen jedoch eine erweiterte SQL-Syntax, mit der das dann auch 'in einem Rutsch' erledigt werden kann.

    Es stellt sich mir auch die Frage, warum das eigentlich verschiende Tabellen sein müssen bzw. ob man  das Problem nicht durch ein entsprechendes Datenbankdesign umgehen hätte können. Andererseits ist mir auch klar, daß man nicht immer das Design der Datenbank so einfach über den Haufen wirft.

    Dieses Datum kann dann für jeden Datensatz anders sein und soll in der Abfrage angezeigt werden.

    Das verstehe ich jetzt nicht. Was meinst Du genau? Vielleicht kannst Du auch ein Beispiel posten.

    Auch mit SQL-Code komme ich nicht so richtig auf die gewünschten Ergebnisse.

    Ach, durch den Begriff 'Auswahlabfrage' dachte ich, daß es um SQL geht;-)

    Wahrscheinlich muss ich mich ziemlich doll schämen und in die Ecke Stellen, wenn ich die Antwort sehe...

    Etwas nicht zu wissen, ist alleine sicherlich kein Grund sich zu schämen. Nur, wenn man zusätzlich nicht bereit ist, etwas zu lernen, und zwar richtig. Von anderen abschreiben war schon in der Schule blöd, oder;-)

    Würd mich aber trotzdem über Lösungsvorschläge freuen!

    Bei Oracle beispielsweise ist es möglich Subselects durchzuführen und mehrere Select-Statements miteinander zu kombinieren. Damit könnte man das mit einem komplexeren Statement realisieren:

    select max(datum) from (
      select max(datum) from tabelle1
      union all
      select max(datum) from tabelle2
      union all
      select max(datum) from tabelle3
      );

    Wenn das nicht geht, könntest Du eventuell eine Hilfstabelle verwenden in der du zuerst das letzte Datum aus allen relevanten Tabellen speicherst und dann in einem Zeweiten Schritt aus dieser Tabelle das letzte Datum ermittelst.

    Auch ein Ansatz mit externer Programmierlogik währe denkbar. Du ermittelst der Reihe nach die entsprechenden Datumswerte und merkst Dir immer nur das jüngste. Nachdem DU alle Tabellen abgefragt hast, hast Du auchdamit dann das letzte Datum aus allen Tabellen.

    Grüße
      Klaus