Komplizierte Abfrage und Summenbildung
Hallo Forum,
ich habe eine komplizierte Abfrage und Summenbildung ... Ziel ist es, die Summe des Umsatzes über alle Filialen eines Kunden zu bilden. Die Umsatzdaten kommen von unserem externen Logistiker, ich will sie in Ninox auswerten.
1) Ich habe eine Liste von Kundennummern, das sind die Kundennummer der Filialen, es können bis zu 50 sein, beispielsweise so:
10001, 10015, 12012, 13041, 14009
Das liegt als Text vor, aber natürlich kann ich dazu auch eine Ninox-Tabelle anlegen, wenn das hilfreich ist.
2) In der Tabelle UMSATZSTATISTIK muss ich jetzt die Spalte KUNDENNUMMER nach all diesen Nummern abfragen.
3) Und in der Spalte RECHNUNGSBETRAG steht der jeweilige Rechnungsbetrag, den will ich über alle diese all diese Kundennummern kumulieren.
Natürlich kann ich das über eine Ansicht und einen Filter machen, aber ich wollte vorher prüfen, ob ich das auch über ein Formelfeld machen kann ... aber das ist mir leider noch zu hoch.
Viele Grüße,
Oliver
4 Antworten
-
Hallo Oliver, wenn ich richtig verstanden habe wäre die Formel für ein Formelfeld:
---
let myKN:=KUNDENNUMMER;
sum(select UMSATZSTATISTIK [KUNDENNUMMER=myKN].RECHNUNGSBETRAG)
---
Leo
-
Hallo Leo,
vielen Dank, das funktioniert prima für eine Kundennummer, das habe ich auch hingekriegt.
Ich habe das Problem, dass manche Filialisten unter 50 oder mehr Kundennummern bestellen. Und um deren Umsatz abzufragen, muss ich also all diese Kundennummern abfragen.
Kann ich in der Formel diese Kundennummern irgendwie als ein Array übergeben und dann alle Umsätze addieren?
Also beispielsweise wenn ich die Tabelle UMSATZSTATISTIK mit den Kundennummern 10001, 10015, 12012, 13041, 14009 abfragen und die Ergebnisse addieren muss.
Viele Grüße
Oliver
-
Hallo Oliver, ich verstehe auch noch nicht ganz, was da wann an welcher Stelle genau passieren soll, aber wenn ich mal davon ausgehe, die vom Logistiker gelieferten Nummern stünden kommagetrennt in einem mehrzeiligen Textfeld namens 'FilialKdNummern' und es gäbe ein Feld 'Gesamtumsatz', dann könnte es per Schaltfläche vielleicht so (oder ähnlich) funktionieren:
Gesamtumsatz := 0;
let myArray := split(FilialKdNummern, ",");
for X in range(0, cnt(myArray)) do
let myKN := trim(item(myArray, X));
Gesamtumsatz := Gesamtumsatz + sum((select UMSATZSTATISTIK)[KdNummer = myKN].Betrag)
end -
Hallo Axel,
vielen Dank, das werde ich probieren, liest sich jedenfalls gut :)
Die Kundennummern kann ich so einsetzen, wie ich sie will. Entweder direkt in die Formel (denn die Kundennummern ändern sich nicht) oder wie in deinem Vorschlag als mehrzeiliges Textfeld. Ich kann es auch aus einer Tabelle ziehen, wenn sinnvoll.
Das Problem mit diesen Großrechnerdaten des Logistikers ist einfach sehr komplex, eine AS400-Lösung funktioniert komplett anders als eine "heutige" Software. Beispielsweise stehen sowohl positive Umsätze (Rechnungen) als auch negative Umsätze (Gutschriften) in der selben Spalte, und zwar ohne Vorzeichen! Man muss anhand einer anderen Spalte selbst den Wert ausrechen, je nachdem, ob da "R" oder "G" steht ...
Gruß, Oliver
Content aside
- vor 6 JahrenZuletzt aktiv
- 4Antworten
- 2069Ansichten