Bestimmtes Feld ausschließen
Hallo zusammen,
geht es irgendwie, das wenn in einer Spalte die Checkbox auf Ja also aktiv ist, das die Zeile bei der Berechnung ignoriert oder ausgeschlossen wird, sozusagen einfach übersprungen wird?
Ich lass mir in einem Tabellenfeld immer mit last() die letzte anzeigen, aber ich möchte eben nicht die letzte angezeigt bekommen, wenn die Ckeckbox auf Ja ist.
Ich hoffe ihr könnt mir irgendwie helfen, denn ich komme gerade nicht weiter.
Vielen Dank!
12 Antworten
-
Tabellenname: SummeMitBedingung
Ja/Nein-Feld: in Berechnung aufnehmen ?
Zahlenfeld : Zahl
Funktionsfeld:
sum((select SummeMitBedingung)['in Berechnung aufnehmen ?' = true].Zahl)
berechnet die Summe aus den Zahlen, bei denen der Schalter auf Ja (true) steht.
-
Eine Summe möchte ich aber nicht berechnen.
Mit last() lasse ich mir die Zeile mit dem aktuellen Datum anzeigen. Wenn in dieser Zeile aber die Checkbox auf Ja ist, dann soll diese Zeile übersprungen werden und das nächste aktuelle Datum angezeigt werden.
Geht das irgendwie?
-
Hallo, schon mal versucht, "sum" einfach durch "last" zu ersetzen? Falls erforderlich, ließe sich beim select mit "order by" auch noch die Sortierung der Datensätze festlegen.
-
Ich weiss nicht richtig, was er meint, was soll nach last() noch kommen ?
Oder möchte er sum() durch max() ersetzt haben ?
Oder möchte er nach dem letzten Datensatz einen neuen angelegt haben ?
Was ist ein Tabellenfeld ? Ein Ansichtsfeld ?
Du müsstest da etwas präziser werden :-)
-
Denke er meint:
last((select SummeMitBedingung)['in Berechnung aufnehmen ?' = true].Zahl)
-
Der Vorschlag von Notarztdienste BW geht glaub ich schon mal in die richtige Richtung.
Zur Verdeutlichung hab ich mal einen Screenshot angehängt.
In der Untertabelle Zuteilungen gibt es bei jedem Eintrag den Zuteilungsstatus, entweder Zugeteilt oder Verfügbar.
Dieser wird mit last(Zuteilungen.Status) in Alle Gebiete angezeigt.
Jetzt möchte ich aber, das wenn das eine Aktion ist, die sozusagen auf Ja is, dann übersprungen/ignoriert wird.
Denn hier wird eben auch gerade der Status verfügbar angezeigt, obwohl der falsch ist, weil Zeile 2 in diesem Gall den aktuellen Zuteilungsstatus angibt.
Ich hoffe es ist jetzt etwas verständlicher.
-
Ich gehe mal davon aus, dass 'Status' ein im Screenshot nicht sichtbares Feld der Untertabelle 'Zuteilungen' ist. Dann könnte es so funktionieren:
last(Zuteilungen[Aktion != true]).Status
Mir ist allerdings immer noch nicht klar, welcher Datensatz mit "last" angesprochen werden soll: Der zuletzt eingetragene ('Nr'), der mit dem höchsten Datumswert bei 'Ausgegeben' oder ...? Das könnte man, wie oben schon gesagt, mit 'order by' beeinflussen, z. B. so:
last(Zuteilungen[Aktion != true] order by Ausgegeben).Status
Statt des Datumsfeldes "Ausgegeben" könnte man nach "order by" auch jedes andere Feld namentlich zur Sortierung heranziehen. Aus dieser Sortierung ergibt sich dann die jeweilige Reihenfolge der gefilterten Daten mit einem ersten (first) und einem letzten (last) Datensatz.
-
Vielen Dank Copytexter, der erste Lösungsansatz hat funktioniert!
-
@Copytexter: Was ist für "order by x" der Befehl für die umgekehrte Sortierreihenfolge?
Danke und liebe Grüße
Stephan
-
...weil sowas wie "order by X ASC" oder "order by X DESC" geht ja nicht...
-
Hallo Stephan, m. W. gibt es leider noch keine Möglichkeit, beim "order by" die Sortierreihenfolge zu ändern. Für Arrays hingegen gibt es sort() und rsort(). Je nach Aufgabenstellung lässt sich die Sortierung also vielleicht über diesen Weg realisieren.
-
Alles klar, danke Dir!
Content aside
- vor 3 JahrenZuletzt aktiv
- 12Antworten
- 2339Ansichten