0

Datensatz finden - Anzahl von Kriterien

In einer Tabelle soll nach der Existenz eines Datensatzes gesucht werden. 10 Kriterien sind verfügbar. Wenn bspw. 7 von 10 zutreffen, soll der erste Datensatz herangezogen werden.

Ich möchte vermeiden, ein "first(select Tabelle where ...)" zu schreiben, wo in Kombination mind. 7 aus 10 Filtern "true" sein müssen. 

Hat jemand eine effizientere Lösung parat? Irgendwie, dass man die Kriterien einmal auflistet, die TRUE auszählt und das Ergebnis mit >=7 in das SELECT schreibt...

Grüße

3 Antworten

null
    • Tobias_Bartzsch
    • vor 6 Monaten
    • Gemeldet - anzeigen

    ...wenn 7 zutreffen - treffen 3 nicht zu. Wäre das ein Ansatz?

    Ich würde sonst ausm Bauch heraus das Zählen der zutreffenden, bzw. das Ranking dann schon im Datensatz selber lösen, über Formelfeld oder je Kriterium bei Änderung einen Counter/Checksumme anlegen... 

    • mirko3
    • vor 6 Monaten
    • Gemeldet - anzeigen

    Du könntest ein Array der Felder erstellen, in denen Deine geforderten Bedingungen true sind (Feld ist nicht leer, Auswahl ist 1 etc.) und alle "false" entfernen und zählen. Dann kannst Du dir eine Liste der Records ausgeben lassen, die diesen Bedingungen entsprechen. Mirko

    for i in select TABELLE do
        if cnt([i.Zahl != null, i.Text != null, i.Text = "Inhalt", i.Auswahl = 1, ...][!= false]) >= 7 then
            i.number(Nr)
        end
    end
    
    • Icarus_Ralf_Becker
    • vor 6 Monaten
    • Gemeldet - anzeigen

    Mirko, vielen Dank. Genau die Syntax habe ich gebraucht. Stark 💪 Danke.

Content aside

  • Status Answered
  • vor 6 MonatenZuletzt aktiv
  • 3Antworten
  • 44Ansichten
  • 3 Folge bereits