0

Daten per Skript zusammenfassen

Hallo Leute,

ich habe einen Haufen Bestellpositionen in einer Tabelle. Die Struktur sieht ungefähr so aus:

Datum, Bestellnummer, Artikelnummer, Menge

Mit diesen Daten werden die Verkaufszahlen analysiert. Für jeden Artikel gibt es unter Umständen vielfache Datensätze mit demselben Datum.

Um die Sache schlanker zu machen, ist nun die Idee ins Spiel gebracht worden, die Daten auf Tagesebene zusammenzufassen. Also ein Skript sollte alle Bestellpositionen eines Artikels für einen Tag des Kalenders summieren, und idealerweise einen neuen summierten Datensatz in die Tabelle schreiben, und die anderen desselben Datums löschen.

Hat jemand schonmal sowas gemacht?

Gibt es hier Erfahrungen, best practices?

 

Danke.

1 Antwort

null
    • mirko3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hi Arwin. Ich habe mal aus Neugier für eine Tabelle eine Liste erstellt, die die tagesaktuellen Gesamtsummen der Einzelprodukte anzeigt. Sie lief damals im Dashboard und läßt einen schnellen Überblick über den Umsatz (also Menge*Preis) jedes Produktes an einem Tag zu. Das ganze habe ich in HTML eingepflegt, womit es etwas ansprechender aussah. Hier ist mal das Script für ein Funktionsfeld. Es bringt das selbe Ergebnis - eben weniger hübsch, aber dafür vielleicht nachvollziehbarer zum evtl. Nachbau. Es ist zwar nicht dass, was Du hier angefragt hast, aber ein ähnliches Ergebnis. Prinzipiell lässt es sich sicher erweitern auf eine Schreibfunktion in eine Tabelle mit anschliessendem Löschen der alten Datensätze - habe ich aber nicht probiert. Die in Großbuchstaben geschriebenen Bezeichner mußt Du noch anpassen an Deine Feldnamen. Mirko

    let table := ((select EINKAUF) order by DATUM);
    let uniqueValues := unique(table.(DATUM + "#" + PRODUKT));
    let listOfResult := for uniqueValue in uniqueValues do
            let splitValue := split(uniqueValue, "#");
            let resDate := item(splitValue, 0);
            let resProd := item(splitValue, 1);
            let resSum := format(sum(table[DATUM + "#" + PRODUKT = uniqueValue].(MENGE * PREIS)), "0.00 €");
            resDate + " " + resProd + " " + resSum
        end;
    join(listOfResult, "
    ")