Announcement

Collapse
No announcement yet.

SQL Abfrage mit Beträgen mit Toleranzen

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

  • SQL Abfrage mit Beträgen mit Toleranzen

    Hallo Zusammen,

    in einer Tabelle habe ich Rechnungsbeträge und die dazugehörigen Zahlungen. Die Zahlungen können von den Rechnungsbeträgen
    abweichen, Diese Einträge möchte ich mit einem definiertem Toleranzbereich filtern, im Beispiel +/- 0,10 €

    Die Abfrage so funktioniert leider nicht:

    select * from beleg where Brutto = _SEPAEXTBETRAG or (Brutto >= _SEPAEXTBETRAG + 0.10 and Brutto <= _SEPAEXTBETRAG - 0.10)
    AND _SEPAEXTBETRAG is not NULL
    AND _ZAHLSPERRE = 1
    And Belegtyp = 'R'
    and Datum > '22.11.2021'

    Wie kann ich das lösen?

    Gruß Nevada



  • #2
    Brutto >= _SEPAEXTBETRAG + 0.10 and Brutto <= _SEPAEXTBETRAG - 0.10

    Wie kann der Betrag gleichzeitig +0.10 sein und -0.10
    Christian

    Comment


    • #3
      https://www.w3schools.com/mysql/mysql_between.asp
      Christian

      Comment


      • #4
        Das +0.1 und -0.1 musst Du in Deiner Logik tauschen

        Beispiel:
        _SEPAEXTBETRAG soll hier mal der Einfachheit halber 10 sein, dann fragst Du aktuell bei Dir folgendes:

        WENN Brutto >= _SEPAEXTBETRAG + 0.10 and Brutto <= _SEPAEXTBETRAG - 0.10
        => WENN Brutto größer oder gleich 10.1 UND Brutto kleiner gleich 9.9

        Brutto kann nie größer oder gleich 10.1 und gleichzeitig kleiner oder gleich 9.9 sein

        Vertauschst Du das +0.10 und -0.10, kommt die Logik hin:
        WENN Brutto >= _SEPAEXTBETRAG - 0.10 and Brutto <= _SEPAEXTBETRAG + 0.10
        WENN Brutto größer oder gleich 9.9 UND Brutto kleiner oder gleich 10.1

        Die sinnvollere Variante ist aber BETWEEN:
        Originally posted by Christian Marquardt
        PHP rocks!
        Eine Initiative der PHP Community

        Comment

        Working...
        X