Announcement

Collapse
No announcement yet.

Jüngsten (letzt gültigen) Eintrag ermitteln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Jüngsten (letzt gültigen) Eintrag ermitteln

    In einer Tabelle existieren zu einem Code mehrere Einträge.
    Bsp. Für einen Währungskurs existieren Datumsabhängig andere Einträge.

    Code DatGAb Kurs
    USD 01.01.2006 1.2350
    USD 01.02.2006 1.2275
    USD 13.02.2006 1.2250
    USD 01.03.2006 1.2300

    Über einen Parameter wird das "Gültig ab"-Datum ermittelt.

    Nun soll der Kurs der zum Zeitpunkt des Parameters gültig ist, ermittelt werden (der per diesem Datum gültige Wert resp. der letztgültige Wert).

    Bsp.: für den Parameterwert 28.02.2006 soll der Datensatz mit dem Kurs 1.2250 (13.02.2006) identifiziert werden.

    Ich stehe hier ein wenig auf dem Schlauch und bin für Tips dankbar.

    Gruss
    Thomas

  • #2
    Hallo Thomas,

    das ist der DS mit dem größten Datum aller DS deren Datum kleiner ist als <i>Stichtag</i> - Alles klar
    <br>
    select * from DatGAb outer
    where outer.datum = (
    select max(inner.datum)
    from DatGAb inner
    where inner.datum <= :<i>Stichtag</i>)
    <br>
    Gruß Fal
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Alles klar, funktioniert bestens.

      Herzlichen Dan

      Comment


      • #4
        Da die Tabelle DatGAb im Regelfall einen Primärschlüssel id hat, der automatisch hochgezählt wird, läßt sich dieses Problem etwas geschickter lösen:

        Select * From DatGAb A
        Where A.id = (
        Select Top 1 B.id
        From DatGAb B
        Where B.datum <= Stichtag
        Order By B.id Desc)

        Da für den Primärschlüssel ohnehin ein Index existiert, kann dieser verwendet werden
        Online-CRM-Lösungen

        Comment

        Working...
        X