Summe über Felder in anderer Tabelle
Hallo,
ich weiß, dass das Thema hier bereits mehrfach auftaucht, aber ich habe keine Lösung gefunden.
In einer Tabelle Rechnungen habe ich die Felder bezahlt/offen, Person und Rechnungsbetrag.
In einer anderen Tabelle möchte ich jetzt die Summe der Rechnungsbeträge bilden für eine bestimmte Person, wenn das Auswahl Feld bezahlt/offen den Eintrag offen enthält. Klingt simpel, wird es auch sein, aber mein Befehlt führt nicht zum Erfolg:
let Summe := sum((select Rechnungen where 'bezahlt/offen' = 1 and Person = "NamederPerson").Rechnungsbetrag);
Summe;
wobei der Status 1 bei bezahlt/offen eben offen bedeutet (der erste Eintrag der Auswahl).
Was mache ich da falsch? Ich bekomme als Ausgabe 0, aber da sind defintiv Rechnungen mit offen und Rechnungsbeträgen größer Null bei Person Nameder Person
Grüße
Maurice
11 Antworten
-
Hallo Maurice
---
let myName:=Person;
sum(select Rechnungen where 'bezahlt/offen' = 1 and Person = myName.Rechnungsbetrag);
---
Dabei Person in erster Zeile - der Name des Suchfeldes. Wenn das Feld anders heißt, musst du ändern.
Leo
-
Danke, aber das Feld Person gibt es nur in der Tabelle Rechnungen, nicht in der Tabelle, in der die Funktion aufgerufen wird (deshalb Fehlermeldung). Hinzu kommt, dass der Name der Person ein ganz bestimmter sein soll, z. B. Sabine. In meinem Beispiel hatte ich das "NamederPerson" deshalb in Anführungszeichen gesetzt. Es gibt quasi ein Extra-Feld "Summe Sabine", in der die entsprechende Summe gebildet werden soll. "Summe Martin" gibt ein neues Feld.
Hintergrund: es geht um das Einreichen von Rechnungen. Erst ab einem bestimmten Betrag macht das Einreichen von rechnungen bei einer Person Sinn. Und dieser Grenzbetrag ist von Person zu Person verschieden. So kann es sein, dass ich Rechnungen von einer Person einreiche (Summe überschreitet deren individuellen Betrag), von einer anderen nicht (deren Summe übersteigt nicht deren individuellen Betrag).
Ich habe jetzt auch versucht - ich nehme mal Sabine:
let Summe := sum((select Rechnungen where 'bezahlt/offen' = 1 and text(Person) = "Sabine").Rechnungsbetrag);
Summe;funktioniert auch nicht.
-
Ist Person ein Auswahlfeld?
-
Nein, Person ist ein Feld, das in der Tabelle Rechnungen verknüpft ist mit einem Feld Personen in einer anderen Tabelle. Liegt es daran?
-
Versuch mal mit:
sum((select Rechnungen where 'bezahlt/offen' = 1 and Person.Name = "Sabine").Rechnungsbetrag);
---
oder Statt Name das Feld, wo Sabine drin steht
Leo
-
Sabine steht im Feld Person in der Tabelle Rechnungen
Es gibt darüberhinaus eine Tabelle Personen (Plural), in der alle Personen, die Rechnungen generieren, angelegt sind. Dort gibt es ein Feld Name, aber in der Tabelle Rechnungen nicht.
Grüße
Maurice
-
Kannst du bittte ein paar screenshot machen. Vom Datenmodell und vom Formular?
-
Bin ohne Ninox unterwegs, wird bis Samstag dauern.
-
Anbei Datenmodell:
Es geht um die Tabelle Antragsbedingungen, um das Feld Rechnungen einreichen. Mit
let Aussage := "nein";
let Summe := sum((select Rechnungen where 'bezahlt/offen' = 1 and Person = "M").Rechnungsbetrag);
Summewollte ich erst einmal schauen, wie groß die Summe der offenen Beträge sind für Person M. Später in eine If-Schleife einbauen, um dann die Aushabe zu genrieren "ja" (bei Einreichen) und "nein" bei nicht einreichen. Mit dem styled Befehlt kann man das ja sogar noch schön einfärben. Aber erstmal müssen die offenen Beträge richtig summiert werden.
In der Tabelle "Rechnungen" gibt es ein Auswahlfeld "bezahlt/offen", bei dem der erste Eintrag "offen" ist.
-
Hallo Maurice,
Ich brauche noch ein screenshot von dem Formular der Tabelle Rechnungen, wo die Verknüpfung zu der Tabelle Personen zu sehen ist und ein Screenshot von dem Formular der Tabelle Personen von der Name von "M" steht.
Oder du nimst die Formel:
---
sum((select Rechnungen)['DER NAME DER VERKNÜPFUNG ZU DER TABELLE PERSONEN IM FORMULAR RECHNUNGEN'.'DER NAME DES FELDERS IM FORMULAR PERSONEN WO "M" STEHT' = "M"].Rechnungsbetrag)
---
und fügst entsprechenden Namen hinzu. Etwa so:
sum((select Rechnungen)[Personen.Name = "M"].Rechnungsbetrag)
Leo
-
Hallo Leo,
super. Vielen Dank. Hat geklappt. Man muss also den Feldname in im Formular aufführen, gefolgt vom Feldnamen in der verknüpften Tabelle. Wieder was gelernt.
Das Prüfkriterium "Bezahlt/offen" habe ich auch eingebaut.
Grüße
Maurice
Content aside
- vor 5 JahrenZuletzt aktiv
- 11Antworten
- 4488Ansichten