0

Häufigkeit eines Wertes zählen in Abhängigkeit von weiterem Feld

Hi, ich habe eine vermutlich sehr einfach zu lösende Frage, weiß aber nicht, wo ich mit der Suche beginnen soll bzw. hab auch keine Ahnung vom Programmieren.

Ich möchte gern die Häufigkeit des Wertes in einem Feld in Abhängigkeit von einem weiteren Feld zählen.

Also quasi sowas wie

count if 'Fotosystem'=Fotokabine and 'Nr.'=1

Kann mir da jemand weiterhelfen?

10 Antworten

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

    Vielleicht so:

     

    cnt(select DEINETABELLE where Fotosystem = "Fotokabine" and 'Nr.' = 1)

     

    Das Feld Fotosystem wäre hier ein Textfeld und das Feld 'Nr.' (nicht zu verwechseln mit 'Nr', der internen Datensatznummer) ein numerisches.

    • Böhm & Herold GbR Fotoautomat Berlin
    • Sebastian_Bohm
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Das funktioniert leider nicht, da wird nix berechnet:

    cnt(select Events where Fotosystem = "Fotokabine" and 'Nr.' = 1).

    Mir ist aber zusätzlich noch was aufgefallen, wozu ich wohl doch etwas genauer erklären muss, was ich machen will:

    Meine Firma vermietet Fotosysteme.

    Es gibt eine Tabelle Events. Darin stehen, wie der Name schon sagt, die Infos zu einzelnen Events. Unter anderem auch, welches Fotosystem mit welcher Inventarnummer (Nr.) zum Einsatz kam.

    Dann gibt es eine Tabelle Statistik, in der Auswertungen erfolgen sollen. Hier gibt es quasi eine Inventarliste. Also Fotokabine 1, 2, 3 usw. Die Inventarnummer steht im Feld Nummer. Abhängig von der Zeile dieser Tabelle müsste die Berechnung also eigentlich in etwa so lauten:

    cnt(select Events where Fotosystem = "Fotokabine" and 'Nr.' = (select Statistik.Nummer))

    • Böhm & Herold GbR Fotoautomat Berlin
    • Sebastian_Bohm
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Edit: Das Zählen der Spalte 'Nr.' funktioniert, allerdings scheinbar nicht in Abhängigkeit von der Spalte 'Fotosystem'

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

    Moin, ist die Inventarnummer denn nicht eindeutig? Gibt es "Fotokabinen" mit den Nummern 1, 2, 3 etc. und bspw. auch "Kameras" mit denselben Nummern? In der Tabelle "Events" heißt das Feld für die Inventarnummer "Nr.", in der Tabelle "Statistik" heißt es "Nummer"? Beide Felder sind Zahlenfelder? Und in der Tabelle "Statistik" soll nun angezeigt werden, wie oft das betreffende Fotosystem in der Tabelle "Events" vorkommt?

     

    Falls ich das halbwegs richtig interpretiert habe, dann würde ich's mal so versuchen:

     

    let myINr := Nummer;
    cnt(select Events where Fotosystem = "Fotokabine" and 'Nr.' = myINr)

    • Böhm & Herold GbR Fotoautomat Berlin
    • Sebastian_Bohm
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Moin, die Inventarnummer ist nicht eindeutig, nein. Es gibt z.B. sowohl eine Fotokabine Nummer 1 als auch eine Fotosäule Nummer 1.

    Und ja, in Events=Nr. und in Statistik=Nummer

    Nr. ist ein Auswahlfeld (das könnte ich aber ändern wenn das erforderlich ist). Nummer ist ein Zahlenfeld

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

    Bei vergleichenden Abfragen müssen die Feldtypen zueinander passen. Wenn "Nr." also ein Auswahl- und "Nummer" ein Zahlenfeld ist, dann muss man die Abfrage passend machen. Leider geht aus deinen Infos nicht hervor, was genau in dem Auswahlfeld "Nr." als Auswahloptionen eingetragen ist, deshalb muss ich etwas weiter ausholen.

     

    Auswahlfelder können zwei verschiedene Werte zurückgeben: Erstens den Text, der angezeigt wird, zweitens die interne, automatisch vergebene Nummer des Eintrags. Angenommen, man hat ein Auswahlfeld namens "Status" mit folgenden Einträgen:

     

    Geplant    1

    In Arbeit  2

    Feddich    3

     

    Dann kann man auf zweierlei Weise abfragen. Nach dem Texteintrag:

     

    if text(Status) = "In Arbeit" then ...

     

    Oder nach der Nummer des Eintrags:

     

    if number(Status) = 2 then ...

     

    Das müsstest du jetzt auf deine konkrete Konstellation übertragen. Da "Nummer" ein Zahlenfeld ist, hat auch die Variable "myINr" einen numerischen Wert.

     

    let myINr := Nummer;
    cnt(select Events where Fotosystem = "Fotokabine" and number('Nr.') = myINr)

     

    Allerdings würde dabei wie oben erläutert die interne Nummer des Eintrags im Auswahlfeld "Nr." abgefragt. Falls das nicht funktioniert, müsstest du noch mal genauer sagen, welche (Text-) Inhalte das Auswahlfeld "Nr." hat. Falls es nur Ziffern wären, könnte man auch diese in Zahlen umwandeln, ich will hier aber nicht ins Blaue hinein alle denkbaren Varianten durchspielen.

    • Böhm & Herold GbR Fotoautomat Berlin
    • Sebastian_Bohm
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Vielen Dank für die ausführliche Erläuterung! Ich teste das alles und melde mich wieder

    • Böhm & Herold GbR Fotoautomat Berlin
    • Sebastian_Bohm
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Die Einträge im Auswahlfeld 'Nr.' lauten genauso wie die Nummer des Eintrags. Also 1=1, 2=2 usw. Das ansprechen über number() sollte also funktionieren.

    Ich habe ein Auswahlfeld gewählt, damit ich die Einträge farbig machen kann.

    Leider funktioniert es trotzdem nicht.

    Und mir ist noch was anderes aufgefallen: Ich müsste die Art des Fotosystems ja ebenfalls aus der Tabelle Statistik auslesen aus der jeweiligen Zeile. Das habe ich, analog zu 'Nummer', so versucht:

    let myINr := Nummer;
    let mySystem := System;
    cnt(select Events where Fotosystem = mySystem and number('Nr.') = myINr)

    Das ändert immer noch nichts an der Tatsache, dass als berechneter Wert 0 angezeigt wird, zumindest kam aber keine Fehlermeldung.

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

    Hm, sieht so auf den ersten Blick richtig aus. Sofern die Feldtypen jeweils übereinstimmen (und das Ergebnis nicht tatsächlich 0 lautet). Vielleicht kannst du die Datenbank mit ein, zwei Testdatensätzen ja mal irgendwo zum Download ablegen, dann könnte man sich die Sache mal genauer ansehen. Wäre wohl effektiver als das "try and errror".

    • Böhm & Herold GbR Fotoautomat Berlin
    • Sebastian_Bohm
    • vor 4 Jahren
    • Gemeldet - anzeigen

    So, ich bin jetzt nochmal in mich gegangen und habe mir alles durchgelesen. Nun funktioniert es, der Fehler lag hier:

    "Bei vergleichenden Abfragen müssen die Feldtypen zueinander passen"

    Das taten sie zwar in der Tabelle "Events", in der Tabelle "Statistik" war ein Feld aber noch ein Textfeld, kein Auswahlfeld.

    Danke für alles bis hierher!

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 10Antworten
  • 2945Ansichten