SQL-Operator gesucht

Hallo Wissende,

ich hab folgendes Problem:

In einer Tabelle steht neben dem Datum (Primärschlüssel) eine Spalte „Eingang“ und eine Spalte „Rückstand“. In einer Abfrage soll das ausgewertet werden. Dort wird zuerst der maximale Rückstand errechnet (Eingang * 2) - kein Problem. Nun sollen da noch zwei Spalten hin, in denen der Rückstand in „erlaubt“ und „überschritten“ aufgeteilt wird. Hier scheitere ich daran, dass Access-SQL scheinbar kein If kennt, auch ein entsprechender Operator ist nicht in Sicht.

Mal zwei Beispiele:
Tag1:
Eingang 100, Rückstand 60
Maximum: 2*100=200
erlaubter R.: 60
nicht erlaubtet R: 0

Tag 2:
Eingang 50, Rückstand 130
Maximum: 2*50=100
erlaubter R.: 100
nicht erlaubter R.: 30

Naheliegen wäre, entsprechend dem zweiten Beispiel, zu rechnen: tatsächlicher Rückstand - Maximum = nicht erlaubter Rückstand. Das klappt aber nicht im ersten Fall, denn der nicht erlaubte Rückstand ist nicht -140, sondern 0.

Meine Idee ist entweder ein Operator, der von zwei Werten den niedrigeren weitergibt (Vergleich mit Null) oder eben ein If-Clause. Mit MIN() bin ich gescheitert, denn der bringt das Minimum einer Spalte.

Vielen Dank im voraus

Hans-Jürgen

Grüß Gott,

Hier scheitere ich daran, dass Access-SQL scheinbar kein If kennt, auch ein entsprechender Operator ist nicht in Sicht.

richtig, ein IF kennt SQL nicht, aber IIF kannst du ohne Probleme nutzen.
Auch steht es dir frei, eine eigene FUNCTION zu schreiben, die den gewünschten Wert zurück gibt.

Ich gehe mal davon aus, dass du den Abfrage-Assistenten von Access nutzt! Damit wir es eine wenig verständlicher.

Meine Idee ist entweder ein Operator, der von zwei Werten den
niedrigeren weitergibt (Vergleich mit Null)

ja, z.B. per IIF(Bedingung,Ja-Wert,Nein-Wert) = Berechnung in der Horizontalen z.B. Spalte 1 mit Spalte 2 und Ergebnis in der Spalte 3

Mit MIN() bin ich gescheitert, denn der bringt das Minimum einer Spalte.

das hast du richtig erkannt, wenn du Spalten berechnen willst, wird es bis auf die vorgegebenen Möglichkeiten schwierig.
Spaltenwerte in der Horizontalen lassen sich dagegen gut berechnen.

Also solltest du erst mal definieren, was du wie berechnen willst.

Berechnungen in der Vertikalen wo z.B. der berechnete Wert aus vorherigen Datensätzen berechnet werden soll, funktioniert imho nur per VBA Routine.

Grüße aus München
Wolfgang
(Netwolf)

Hallo Wolfgang,

BINGO, das ist es ! Vielen Dank !

Leider findet man IIF nicht in der Access-Hilfe, wenn man nach „IF“ sucht. Ich wusste ja so ungefähr, was ich brauche. Ich wusste nur nicht, wie es heisst.

Dafür einen Stern und nochmals 1000 Dank

Hans-Jürgen