0

Count in einer verknüpften Tabelle

Ich habe eine Tabelle Mietobjekte die eine 1:n Verknüpfung zu Verträge hat. In Verträge sind alle Verträge, die für dieses Objekt abgeschlossen wurden enthalten, aber es darf nur einer aktiv sein. In Verträge gibt es ein Feld 'Status Vertrag' das von "aktiv" auf "gekündigt" geht, sobald im Vertrag ein Enddatum eingetragen wird.

Ich habe in Mietobjekte eine Funktionsfeld mit der folgenden Funktion.

let check := Wohnungs_ID; 
count('Verträge'[Whg_ID = check and 'Status Vertrag' = "aktiv"])

Das Ergebnis ist 0, obschon es einen aktiven Vertrag gibt.

Mit der folgenden Funktion erhalte ich das korrekte Resultat 3

let check := Wohnungs_ID;
count('Verträge'[Whg_ID = check])

 

Ist es möglich nach zwei Kriterien zu wählen? Wenn ja, wie?

Ergänzend: Whg_ID ist ein Funktionsfeld in Verträge, das die Wohnungs_ID aus Mietobjekte übernimmt. Eigentlich wollte ich diese Funktion in der Tabelle Verträge damit es bei Eröffnung eines neuen Vertrages eine Warnung gibt, falls die Zahl grösser 1 ist. Aber in Verträge hat es gar nicht geklappt 🫣)

4 Antworten

null
    • + Maßanzug statt Massenware +
    • RonaldP
    • vor 1 Monat
    • Gemeldet - anzeigen

    Moin ,

    das geht im Grunde genau so, indem du Bedingungen mit AND oder OR kombinierst:

     said:
    count('Verträge'[Whg_ID = check and 'Status Vertrag' = "aktiv"])

    Ich vermute bei deinem Beispiel, dass 'Status Vertrag'  ein Auswahlfeld ist.
    Um den angezeigten Text der Auswahl als Bedingung verwenden zu können, ist es notwendig diesen so auszulesen: text'Status Vertrag' ) es ist auch möglich die Nummer der der Auswahl zu verwenden.
    Dafür kannst du direkt 'Status Vertrag' = 1 angeben oder sicherheitshalber number(Status Vertrag') = 1.

    VG Ronald

      • Marco.1
      • vor 1 Monat
      • Gemeldet - anzeigen

       

      Guten Morgen Ronald

      Danke für die Antwort. Was mich zur Verzweiflung bringt... "Status Vertrag" ist eine Funktion, die aufgrund des Datumsfelds "bis" den Wert "aktiv" oder "gekündigt" ausgibt..... und während ich das schreibe, hatte ich einen Erleuchtung: Die Abfrage gibt nicht nur das Wort "aktiv" aus, sondern, das Feld ist auch mit Farbe hinterlegt:

      let color := "";

      if bis = null then

      color := "#D8F3DC"; styled("aktiv", color, "black", "")

      else

      color := "#FFD6D6"; styled("gekündigt", color, "black", "")

      end

      Und genau an dem liegt es. Der Stil wird offensichtlich als Teil der Ausgabe erkannt. Darum gibt es mir 0 aus 😕. Jetzt muss ich entweder herausfinden, wie ich das ganze Stil-Zeugs in die Abfrage übernehme, oder ein zweites, verstecktes Abfragefeld "Status Vertrag check" machen. Ist vermutlich einfacher...

      Nochmals vielen Dank!

      • + Maßanzug statt Massenware +
      • RonaldP
      • vor 1 Monat
      • Gemeldet - anzeigen

       
      Richtig erkannt ;-)
      styled ist mehr als Text.
      Hast du es trotzdem mal mit text( 'Status Vertrag'  ) versucht?
      Bzw. string()
      https://forum.ninox.de/t/83yh5r6/string

      • Marco.1
      • vor 1 Monat
      • Gemeldet - anzeigen

       ja habe ich und jetzt geht es 😃 DANKE