case abfrage ergibt nicht gleiches Resultat
An was kann es liegen ich habe das eine mal eine Berechnung gemacht mit dem Suchkriterium "Rollstuhl" darin
beim anderen habe ich den Suchkriterium über eine switch case abfrage zugewiesenen und ich erhalte nicht die selbe Anzahl. Bei der 2 Variante Fehlen immer jene bei denen mehr als 2 Felder bei der Mehrfachauswahl ausgewählt sind
let newAnzahl := cnt(select 'f-Aufgaben-Kontext' where Wer like "Rollstuhl" and Gruppe = 2);
newAnzahl
Resultat 8
let myWahl := switch Ausbildung do
case 1:
"Autismus"
case 2:
"Rollstuhl"
case 3:
"Anfall"
case 4:
"PTBS"
case 5:
"Signal"
case 6:
"Anfall"
case 7:
"Anfall"
default:
alert("selber ausfüllen was gewünscht ist")
end;
let newAnzahl := cnt(select 'f-Aufgaben-Kontext' where Wer like myWahl and Gruppe = 2);
newAnzahl
Resultat 6
Vielen dank für die Hilfe
7 Antworten
-
Die Variable myWahl kann nur einen Wert aufnehmen, und zwar den ersten, auf den die Bedingung zutrifft. Wenn im Auswahlfeld also bspw. "Autismus" und "Rollstuhl" gewählt wären, dann würden beim cnt() auch nur Datensätze gezählt, bei denen das Feld "Wer" den Wert "Autismus" enthält.
-
er nimmt nur den einen Wert aus der case abfrage auf. Dieser soll er mit einer Mehrfachauswahl vergleichen und alle die Zeilen zählen wo dieser Wert vorkommt.
Wenn ich es direkt mit dem Wert mache klapt es. Wenn ich den Wert über die Case abfrage einfülle klapt es nicht. dort nimmt er nicht alle Zeilen.??
-
er nimmt nur den einen Wert aus der case abfrage auf. Dieser soll er mit einer Mehrfachauswahl vergleichen und alle die Zeilen zählen wo dieser Wert vorkommt.
Wenn ich es direkt mit dem Wert mache klapt es. Wenn ich den Wert über die Case abfrage einfülle klapt es nicht. dort nimmt er nicht alle Zeilen.??
-
Ach so, 'Ausbildung' ist ein einfaches Auswahlfeld? Und 'Wer" ein Mehrfachauswahlfeld? Beide haben aber dieselben Einträge, also "Autismus", "Rollstuhl" usw? Dann könnte man sich das switch eigentlich sparen und gleich die Textwerte abfragen:
if Ausbildung then
let myFilter := text(Ausbildung);
cnt(select 'f-Aufgaben-Kontext' where contains(text(Wer), myFilter) and Gruppe = 2)
endVielleicht habe ich aber auch das Problem immer noch nicht richtig verstanden.
-
leider Nein denn bei der "Ausbildung" hat es 8 Werte und bei "Wer"nur deren 5. 6,7 und 8 sind andere Werte die 6 und 7 wird der Wert der 3 zugeteilt und beim 8 muss etwas ganz anderes geschehen.
Der ganze Befehl ist nur ein Teil des ganzen aber dieser muss zuerst stimmen damit das ganze nachher stimmen kann
-
Hm. Dann habe ich leider auch keine Idee mehr, warum da zwei verschiedene Zahlen ausgeworfen werden, tut mit leid. Vielleicht hat jemand anderes einen Geistesblitz.
-
Es hat jetz funktioniert woran es genau gelegen hat weiss ich nicht aber es ist jetzt alles gut.
Danke für deine Hilfe