Tabellenspalte nach bestimmten Wert prüfen und Anzahl anzeigen, soo kompliziert?
Hallo hallo Datenbank Experten,
Nach längerer Pause mal wieder ein Problem, wo Eure Hilfe gebraucht wird ( habe 4 Tage im Forum gesucht, aber dazu nix gefunden, weil es eigentlich so einfach ist # für Euch # )
In "Tabelle1" nur ein Zahlenfeld "Zahl" mit durchaus doppelt vorkommenden Einträgen pro Satz.
In "Tabelle2" nur ein Formelfeld "Zeige" mit einer Abfrage die ich aber nicht hin bekomme.
Mit der Formel sum((select Tabelle1).[cnt(number(Zahl) = 55)]) glaubte ich ,das mir die Gesamt-Anzahl der Einträge mit dem WERT 55 gezeigt wird.
Ergebnis bei 6 Dateneinträgen in der Tabelle1 = 6 , obwohl die Zahl 55 exakt nur 3 mal vorkommt also 3 richtig wäre.
Dann habe ich verschiedenste Formelumstellungen probiert, cnt mit count ersetzt, number weggelassen, auch per Variable let .... experimentiert = nix.
Mit let blabla := if Zahl = 55 then "ja" else "nein" end;
blabla
sogar abgefragt ob 55 vorhanden ist. pro Datensatz steht dann ja oder nein, aber ich brauch die Anzahl. Mit like auch nicht, da dann 355 wohl auch gezählt würde.
Das schunglieren mit () und ,, und [ ] ist der Wahnsinn, falsche Stelle und nix passiert.....auch die rote Fehlerzeile im Editor wirft noch mehr Fragen "Zeile 1 Spalte 37" statt "Zeile 1 Stelle 37" etc...
Irgendwas ist mit meiner Syntax richtig?? Weiß jemand Rat?
Danke!
8 Antworten
-
Finde zwar auf anhieb den Fehler nicht aber so geht es
let a := (select Tabelle3 where Zahl = 55);
cnt(a)lg
-
Hallo, vielen Dank! Ich sagte ja viel zu einfach....... = funktioniert.
Das Prozedere funktioniert aber nicht, wenn "Zahl" kein Zahlenfeld sondern (habe es mal auf die Spitze getrieben) auch ein Formelfeld ist, welches z. Bsp. eine Summe aus anderen Zahlenfelder zieht.
Oder anders: Zahlenfeld "A" = 22 , Zahlenfeld "B" = 33 , Formelfeld "Zahl" = 55 (Summe aus A und B).
dann Formelfeld "Zeige" = 0 (anstatt 1, da ja "55" 1x vorkommt)
liegt es vielleicht daran, das entscheidend ist welche App Version installiert ist?
Nutze Ninox auf Handy und auf Tablet, aber unterschiedl. App version
oder kann man mit einem Formelfeld kein anderes Formelfeld abfragen?
-
In sum((select Tabelle1).[cnt(number(Zahl) = 55)]) der Punkt zu viel. sum und cnt ist wie eine Doppelung.
Probiere doch mal, ob
cnt((select Tabelle1)[Zahl = 55])
was nicht anderes als die Kurzform von Florians Variante ist.
-
Hallo OnLimit_Alf. Auch ein Formelfeld kann abgefragt werden, wenn es vom Typ "number" ist. Wenn Dein Ergebnis nicht plausibel ist, dann gibt es einen Scriptfehler. Oft sind es Veränderungen der Typen, d.h. die Ergebniszahl wird im Formelfeld mit styled() schön farbig gemacht und ergibt dann aber das Format "styled". Das ist dann eine Typumwandlung und Du kannst damit nicht mehr rechnen. Bloß so eine Idee. Mirko
-
Dank für Eure Hilfe. Habe eine einfache Testdatenbank gebastelt, in der Eure Formeln funzen, auch wenn man ein Formelfeld per "Stiloption" hübscher macht.
Der Fehler liegt wahrscheinlich doch daran ( wie von Mirko erwähnt) , das mein Prozedere zuviel mit Formeln, Mehrfachauswahlfeld. , Verknüpfg. u.ä. verschachelt ist und irgendwo sich tatsächlich der Datentyp geändert hat.
Bleibt halt nur, alles umzubasteln.
-
Ich mach mir oft in solchen fällen einfach ein Hilfsformelfeld mit der Zwischenrechnung also z.B. in das schonmal die Nummer als Zahl geschrieben wird und arbeite dann damit weiter. ich weiß das ist umständlicher aber manchmal sind dann die langen Formeln etwas einfacher nachzuvollziehen. lg
-
Leute wie auch immer, nochmals Dank an Euch!
Ich habe es am Ende über eine Subtraktion zweier anderer Formeln gelöst, also keine direkte Abfrage einer Zelle, sondern ein kleiner Umweg. Hauptsache Ergebnis ist richtig. Für die Bastler da draußen die Ninox auch nur als Hobbydatenbank nutzen, kleiner Tipp, vermeidet möglichst Tabellen und Felderbezeichnungen mit Umlauten wie ä, ü, ö etc.....Denn das mag der Formeleditor anscheinend nicht so gern (Erklärung: ich hatte die Tabelle "Dashboard" in "Übsi" umbenannt, oder hatte ein Formelfeld "Fahrprämie". Beides wurde im Editor nicht gefunden, obwohl korrekt geschrieben....zumindest in der Android-app.
Content aside
- Status Answered
- vor 1 JahrZuletzt aktiv
- 8Antworten
- 90Ansichten
-
4
Folge bereits