robertroth: MYSQL: Werte ausdehnen auf mehrer Zeilen? (belegte Leitungen berechnen)

Beitrag lesen

Liebe Mitdenker, liebe Wissende, liebe Neugierige,

Gibt es eine Möglichkeit dies in Mysql zu bewerkstelligen?

Nur so als Grundidee:
Das Ganze mutet ja an, wie eine Digitalisierung... also eine Umsetzung von Ereignissen in digitale Werte. Eine "Abtasttabelle" hast Hast Du ja auch schon geplant.

Es gilt also, die Ereignisse (ON|OFF) der Anruftabelle zu kumulieren in der "Abtasttabelle". Für jedes Ereignis (ON|OFF) wird ein UNIQUE Zeitdatensatz angelegt und ein Zähler geführt. Den Zähler herauf (Gesprächsbeginn) oder herunter (Gesprächsende) zählen. Ist für den Zeitpunkt schon ein DS vorhanden, wird kein neuer angelegt, sondern nur der Zähler korrigiert.

Klappt so leider noch nicht. Man benötigt in der "Sekundentabelle" für den neuen Datensatz immer den Wert aus dem letzten Datensatz, um diesen dann zu incrementieren oder decrementieren.

Scheint mir inzwischen mit einer Monsterarray-Lösung in einer Programmiersprache doch einfacher zu sein. Das kann man dann ja immer noch abspeichern. Und da man nicht für jede Sekunde einen DS benötigt, könnte der Speicher sogar reichen. :-O

Nochmal nachgedacht:

Ausgangssituation:
Es gibt eine Tabelle mit (id,) zeit_start, zeit_dauer

Separierung:

Daraus machen wir (mit zwei Statements) eine Tabelle mit (id, ) zeit, aktion
aus zeit_start wird zeit und +1 für aktion
aus (zeit_start + dauer) wird zeit und -1 für aktion

zeit ist hier noch nicht unique, es können also pro Zeitpunkt noch mehrere Events auftreten

Konsolidierung:

Im nächsten Schritt tragen wir mittels einer Benutzervariablen den aktuellen Stand zusammen und erzeugen eine neue Tabelle mit zeit (unique) und status
zeit ist die Zeit aus der anderen Tabelle
status erhält den Wert der aktuellen Benutzervariable,
die sich aus Benutzervariable + aktion berechnet.

Die neue Tabelle wird mit dem schon erwähnten
"INSERT INTO … SELECT FROM … ON DUPLICATE KEY UPDATE"
erzeugt und hat nun für jeden Änderungszeitpunkt die aktuelle Anzahl von aktiven Leitungen,
nachdem man den Wert von status noch um den größten negativen Wert (offset) korrigiert hat.

Mit Glück gibt es hier Einen, der aus meinen drei (vier) Statements eins machen kann.

Spirituelle Grüße
Euer Robert
robert.r@online.de

--
Möge der wahre Forumsgeist ewig leben!