count mit zwei Bedingungen
Hallo,
ich bin ganz neu auf ninox und versuche mich gerade mit den Formeln vertraut zu machen.
Momentan stecke in bei der Formel count im Zusammenhang mit select where.
Ich möchte gerne eine Formel schaffen, die alle Datensätze in einer Untertabelle zählt, welche Status = zugesagt und Stimmfach = Sopran haben.
Ich weiß nicht ob es relevant ist, aber diese Untertabelle ist sowohl mit der Tabelle Projekte als auch mit der Tabelle Kontakte verknüpft.
Mein Ansatz wäre: count(select Projektteilnahme where "Kontakte.Stimmfach" = "Sopran" and "Projektteilnahme.Status" = "zugesagt")
aber leider funktioniert es nicht.
Ich wäre um etwas Hilfe sehr froh :-)
Vielen, vielen Dank
7 Antworten
-
Hallo Marion,
Du hast bei dem Status nochmal die Tabelle Projektteilnahme in den Pfad reingenommen (Projektteilnahme.Status). Da Du aber schon im Select in der Projektteilnahme bist, wäre Status auf der selben Ebene. Stimmfach z.B. ist in einer unteren Ebene in der Tabelle Kontakte. Daher ist dort Kontakte.Stimmfach korrekt.
Zudem hast Du die Adressierung zu den Feldern in Anführungszeichen gesetzt. Adressierungen gehen aber nur ohne Anführungszeichen oder mit einfachen Anführungszeichen ('xyz'), wenn z.B. Sonderzeichen oder Umlaute im Namen drin sind.
Die dritte Sache ist, was für ein Feld ist "Status"? Ein Auswahlfeld? Dann musst Du folgendes beachten. Spreche ich das Feld normal an, wird die ID der Auswahl zurückgegeben (1, 2, 3, usw.). Möchte ich den Text haben, muss ich diesen gezielt anfordern: text(Status). Also:
text(Status) = "zugesagt"
oder
Status = 1 (was auch immer die ID für zugesagt ist - das siehst Du, wenn Du in die Feldoptionen gehst, rechts neben dem Auswahlnamen)
cnt(select Projektteilnahme where Kontakte.Stimmfach = "Sopran" and text(Status) = "zugesagt")
-
Hallo Marion, ich nehme an, dass es sich bei 'Stimmfach' und 'Status' um Auswahlfelder handelt. Wenn man deren Textwert abfragen will, muss man das explizit angeben, ansonsten gibt Ninox die Nummer des Eintrags als Zahl zurück. Und die passt nicht zu dem Vergleichstext (z. B. "Sopran"). Die Feldbezeichnungen selbst wiederum werden nicht in doppelte Anführungszeichen gesetzt. Und wenn die Tabellen miteinander verknüpft sind, kann auch das "select" entfallen. Ich würde es mal so versuchen:
cnt(Projektteilnahme[text(Kontakte.Stimmfach) = "Sopran" and text(Projektteilnahme.Status) = "zugesagt")
-
Hallo,
vielen, vielen Dank euch beiden!
So hats funktioniert: count(select Projektteilnahme where text(Kontakte.Stimmfach) = "Sopran" and text(Status) = "zugesagt")
Gibt es eine Übersicht über Formeln, Operatoren, Syntax usw. ?
Ich komme nicht aus der Informatik und kann auch nicht programmieren, deshalb währe es ganz praktisch, wenn ich mich irgendwo einlesen könnte.
Sollte also jemand eine Übersicht oder ähnliches haben wäre ich unglaublich froh darüber.
Dankee :-)
-
Dankeschön!
jetzt habe ich in meiner vorherigen Frage zu count doch noch ein Problem entdeckt.
Ninox greift laut Formel natürlich auf die Untertabelle Projektteilnahme zu und gleicht dort ab. Das ist ja grundsätzlich richtig. Das Problem ist nur, dass dort die Projektteilnahmen von mehreren Projekten eingespeichert sind, weshalb ich in meine Formel irgendwie noch einbauen müsste, dass nur die Datensätze zum jeweiligen Projekt ausgewählt werden.
Versteht man was ich meine?
Danke
Content aside
- Status Answered
- vor 1 JahrZuletzt aktiv
- 7Antworten
- 122Ansichten
-
3
Folge bereits