0

select mit Datumsvergleich

Hallo liebes Forum,

ich möchte eine selct-Abfrage mit mehreren Bedingungen erstellen. Eine Bedingung ist, dass Datum1 zeitlich vor Datum2 liegen soll. Mein schlichtes Gemüt ist auf folgende Idee gekommen:

for p in (select tabelle where ('tabelle-Status' = 1 or 'tabelle-Status' = 2 or 'tabelle-Status' = 4) and 'Auswahlfeld' = modus and Datum1 < Datum2) do

Das klappt super. Problem, ich brauche auch alle Einträge, die im selben Monat liegen. Und hier komme ich an meine Grenzen. Der Versuch mit

number(format(Vertragsbeginn, "YYYYMM")) <= number(format(bdatum, "YYYYMM"))

hat leider nicht funktioniert. Hat jemand eine Idee?

Schon mal vielen Dank an alle.

fhs

3 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Idee:

     

    yearmonth(Vertragsbeginn) <= yearmonth(bdatum)

    • fhs
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Danke Copytexter, aber mit dem Statement fällt leider alles raus. Liegt wahrscheinlich daran, dass die Funktion einen String liefert und der sich nur schlecht vergleichen lässt.

    Hat jemand eine andere Idee?

    • Ninox-Professional
    • planoxpro
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Strings lassen sich schon vergleichen, allerdings dürfte das Ergebnis in diesem Fall dasselbe sein wie bei der numerischen Variante. Was mich zu der Vermutung bringt, dass vielleicht eher ein logisches bzw. sachliches Problem vorliegt. Rein technisch sollte ein derartiger Filter m. E. eigentlich funktionieren:

     

    […] and (Datum1 < Datum2 or yearmonth(Vertragsbeginn) = yearmonth(bdatum))

     

    Aber vielleicht liege ich auch falsch. Testen lässt sich das so auf die Schnelle leider nicht, da der „Versuchsaufbau“ doch recht aufwändig wäre. Insofern schließe ich mich deiner Hoffnung an, dass jemand anders einen Geistesblitz hat.

Content aside

  • vor 6 JahrenZuletzt aktiv
  • 3Antworten
  • 1680Ansichten