0

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

null
    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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.

    • Susan_Schaffner_Owner
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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.??

    • Susan_Schaffner_Owner
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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.??

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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)
    end

     

    Vielleicht habe ich aber auch das Problem immer noch nicht richtig verstanden.

    • Susan_Schaffner_Owner
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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.

    • Susan_Schaffner_Owner
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Es hat jetz funktioniert woran es genau gelegen hat weiss ich nicht aber es ist jetzt alles gut.

    Danke für deine Hilfe

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 7Antworten
  • 1415Ansichten