Nachdem ich hier im Forum schon 2x sehr adäquate Hilfe bekommen habe ich mal wieder eine Nuss, die ich nicht selber knacken kann und schon seit einiger Zeit vor mir her schiebe...
Habe in einer Tabelle seit Jahren Preise zu Teilenummern mitgeschrieben, jeweils mit Einsatzdatum und Enddatum, um später eine Preisentwicklung darstellen zu können.
Um nicht jeden Tag auch bei gleichem Preis zum Vortag einen neuen Eintrag zu generieren habe ich stets in einer Spalte "Latest" den neusten Eintrag zu einer Teilenummer markiert. Erst wenn sich der neue Wert vom Latest Wert verändert hat wurde ein neuer Eintrag zur jeweiligen Teilenummer generiert mit Gültig ab dem Tagesdatum. Der vorangegangene Datensatz wurde mit einem gültig bis versehen mit gleichem Tagesdatum.
Das hat auch recht gut funktioniert. Leider hat meine (externe) Datenquelle über die Laufzeit zwischendurch ein paarmal Probleme bei der Übermittlung der Preise gehabt, was mir dann Zwischendurch plötzlich
mal 10fache 100fache oder 1000fache Werte des Teilepreises geliefert hat, da wahrscheinlich dort das Komma in der Export-Konvertierung einfach ignoriert wurde.
Die Preise selbst haben sich selbst im Bereich kleiner 20% verändert, so dass man diese Ausreisser deutlich erkennen kann.
Jetzt sitze ich vor eine Giganto-Tabelle mit 8,4 Mio. Einträgen bei ca. 1,2Mio unterschiedlichen Teilenummern, also ca. 8 pro Teilenummer, die ich gerne per SQL wieder korrigieren möchte.
Mein Ansatz war, gehe die Preistabelle per Schleife TLN für TLN durch und ersetze alle Preise, die es auch mit genau dem gleichem Betrag um den Faktor 1:10, 1:100 und 1:1000 gibt durch den jeweils kleinsten Wert dieser Teilenummer aus der Teilmenge 1:10, 1:100, 1:1000.
In Anbetracht dieser gigantischen Datenmenge glaube ich jedoch, dass dieser Ansatz mit 2 verschachtelten Schleifen nie zu einem Ende kommen wird.
Hat jemand einen eine Anregung, wie ich ggf. über Hilfstabellen, oder mehrere Schritte zum Ziel kommen könnte?
Ich habe mal die Testtabelle mit Datensätze von 3 Teilenummern als Anhang angehängt, um die Datenstruktur klar zu machen.
Bin gespannt auf Eure Anregungen…
Habe in einer Tabelle seit Jahren Preise zu Teilenummern mitgeschrieben, jeweils mit Einsatzdatum und Enddatum, um später eine Preisentwicklung darstellen zu können.
Um nicht jeden Tag auch bei gleichem Preis zum Vortag einen neuen Eintrag zu generieren habe ich stets in einer Spalte "Latest" den neusten Eintrag zu einer Teilenummer markiert. Erst wenn sich der neue Wert vom Latest Wert verändert hat wurde ein neuer Eintrag zur jeweiligen Teilenummer generiert mit Gültig ab dem Tagesdatum. Der vorangegangene Datensatz wurde mit einem gültig bis versehen mit gleichem Tagesdatum.
Das hat auch recht gut funktioniert. Leider hat meine (externe) Datenquelle über die Laufzeit zwischendurch ein paarmal Probleme bei der Übermittlung der Preise gehabt, was mir dann Zwischendurch plötzlich
mal 10fache 100fache oder 1000fache Werte des Teilepreises geliefert hat, da wahrscheinlich dort das Komma in der Export-Konvertierung einfach ignoriert wurde.
Die Preise selbst haben sich selbst im Bereich kleiner 20% verändert, so dass man diese Ausreisser deutlich erkennen kann.
Jetzt sitze ich vor eine Giganto-Tabelle mit 8,4 Mio. Einträgen bei ca. 1,2Mio unterschiedlichen Teilenummern, also ca. 8 pro Teilenummer, die ich gerne per SQL wieder korrigieren möchte.
Mein Ansatz war, gehe die Preistabelle per Schleife TLN für TLN durch und ersetze alle Preise, die es auch mit genau dem gleichem Betrag um den Faktor 1:10, 1:100 und 1:1000 gibt durch den jeweils kleinsten Wert dieser Teilenummer aus der Teilmenge 1:10, 1:100, 1:1000.
In Anbetracht dieser gigantischen Datenmenge glaube ich jedoch, dass dieser Ansatz mit 2 verschachtelten Schleifen nie zu einem Ende kommen wird.
Hat jemand einen eine Anregung, wie ich ggf. über Hilfstabellen, oder mehrere Schritte zum Ziel kommen könnte?
Ich habe mal die Testtabelle mit Datensätze von 3 Teilenummern als Anhang angehängt, um die Datenstruktur klar zu machen.
Bin gespannt auf Eure Anregungen…