Unterschied zwischen first und min
Hallo, ich möchte mir das kleinste Datum in einer Berechnung, unter der Bedingung Auswahlfeld1 = "J" und Schlüsselfeld = Schlüssel des übergeordneten Datensatzes, ausgeben.
let x := this;
first((select Kontrolle)[text('Auswahlfeld1') = "J" and x.'Schlüsselfeld' = Nest.'Schlüsselfeld']).Datum
Im Ergebnis erhalte ich das Datum des ersten Datensatzes. Ändere ich die Formel in
let x := this;
min((select Kontrolle)[text('Auswahlfeld1') = "J" and x.'Schlüsselfeld' = Nest.'Schlüsselfeld']).Datum
bleibt das Berechnungsfeld leer.
Was mache ich falsch?
12 Antworten
-
Hallo Detlef,
let x := this;
min((select Kontrolle)[text('Auswahlfeld1') = "J" and x.'Schlüsselfeld' = Nest.'Schlüsselfeld'].Datum)Leo
-
Hallo Leo,
danke das wars! Jetzt funktioniert es perfekt :-)
Detlef
-
Hallo Zusammen,
ich möchte es etwas anders machen. Meine Formel bisher:
first(date('Verknüpfte Einheiten'.Termin)) + " " + "-" + " " + last(date('Verknüpfte Einheiten'.Termin))
Ich habe mit der Verknüpfung "Verknüpfte Einheiten" die Tabelle "Trainingseinheiten" verknüpft wo Trainingseinheiten angelegt sind. In "Verknüpfte Einheiten" habe ich nun verschiedene Einheiten und ich möchte mir in der Formal die erste und die letzte anzeigen lassen. Die Formel wie oben mit min() und max() sowie dem select() habe ich auch schon probiert - leider ohne Erfolg: es lieferte hier nur leere Felder. Was kann ich tun? -
Es braucht den select-Befehl und min/max sind auch gut. Etwa so könnte es passen:
let i:=(select 'Verknüpfte Einheiten').Termin;
let myErste:=min(i);
let myLetzte:=max(i);
text(myErste)+" - "+text(myLetzte)oder mit sort() den Array nach Termin sortieren und dann mit first/last die gewünschten Datensätze anzeigen, falls du noch mehr Infos als den Termin anzeigen willst
Gruss, Stefan
-
danke Dir. Funktioniert leider nicht. Mir wird ausgegeben, dass "Verknüpfte Einheiten" nicht gefunden wird in Zeile 1. Das ist ja auch die Verknüpfte Tabelle (1:N) in der Tabelle in der ich mich befinde. Habe es dann so versucht:
let me := this;
let i := (select Trainingseinheiten)[Sichtungstitel = me.'Titel der Sichtung'].Termin;
let myErste := min(i);
let myLetzte := max(i);
text(myErste) + " - " + text(myLetzte)Klappt aber auch nicht. Habe im let:=i auch schon die Klammern wild vertauscht, klappt aber auch nichts.
Lustig ist, dass er mir mit concat() alle Termine anzeigt. Mit concat(date()) sogar so, wie ich es haben möchte. Aber eben alle Termine und nicht nur den jüngsten bzw. ältesten... Ich bin ratlos...
-
Ok, habe das Datenmodell wohl falsch verstanden. Wenn concat() geht, dann müsste aber auch min bzw. max(select 'Verknüpfte Einheiten'.Termin)?
-
Nein, weil Ninox "Verknüpfte Einheiten" nicht findet - wahrscheinlich weil es ja die Verknüpfung ist. Aber auch wenn ich den "Originalpfad" angebe, bleibt das Funktionsfeld leer:
let me := this;
max((select Trainingseinheiten)[Sichtungstitel = me.'Titel der Sichtung'].Termin) -
übrigens: auch so bleibt es leer:
max((select Trainingseinheiten)[Sichtungstitel = me.'Titel der Sichtung']).Termin
-
Hallo Stephan,
Termin ist kein einfaches Datenfeld und besteht aus start- und endod- Zeitsctempeln. Versuch es so:
---
let myErste := min('Verknüpfte Einheiten'.start(Termin));
let myLetzte := max('Verknüpfte Einheiten'.start(Termin));
first('Verknüpfte Einheiten'[start(Termin) = myErste]).Termin + " - " + first('Verknüpfte Einheiten'[start(Termin) = myErste]).Termin---
Leo
-
Hallo Leo,
danke Dir, so klappt es. Zusätzliche Frage: Ich bin nun gerade (mit Hilfe) auf diese Formel gekommen. Bewirkt die das gleiche? Nur zum Verständnis...first(('Verknüpfte Einheiten' order by Termin).date(Termin));
LG
-
Hallo Stephan,
ja so kann man auch machen. date(Termin) gibt aber ein Datum zurück. Hast du nur einen Termin pro Tag?
Leo
-
Am Ende weiß ich das noch nicht und es könnten schon mehrere Termine sein...
Content aside
- vor 4 JahrenZuletzt aktiv
- 12Antworten
- 2192Ansichten