[Inhalt] [Zurück] [Weiter] [Thema] [Index]

ModificationTable()


Syntax:

ModificationTable (ZRList zrl, Zeitpunkt abwann) : Relation
zrl: eine Zeitreihenliste
abwann: ab welchem Zeitpunkt sollen Änderungen berücksichtigt werden

Beispiel:

rel := ModificationTable (zrl, @"Gestern")

Beschreibung:

Erzeugt eine Relation, die zu den Zeitreihen in zrl mit Änderungen ein Tupel mit Änderungsbereichen enthält.

Die Tupel enthalten zu allen Monaten bzw. Tagen, an denen seit abwann Änderungen stattgefunden haben, ein Bool-Feld. Diese Felder sind nach den Jahren, Monaten bzw. Tagen benannt (z.B. 2006 für das gesamte Jahr 2006, 200601 für den Januar 2006 oder 20060215 für den 15. Februar 2006). Wenn in der betreffenden Zeitreihe auf dem entsprechenden Bereich seit abwann eine Änderung stattgefunden hat, dann enthält das Feld True, sonst False. Für Bereiche, auf denen bei keiner Zeitreihe in zrl eine Änderung stattgefunden hat, werden keine Felder erzeugt.

Jedes Tupel enthält ein Zahlfeld namens ZRID, das die Position der jeweiligen Zeitreihe in der Zeitreihenliste angibt (siehe ZRNr().

Die Entscheidung ob Monats- oder Tagesfelder erzeugt werden, richtet sich nicht nach dem Zeitreihen, da diese verschiedene Endmonate (die in Tagen aufgelöst sind) haben können. Sie richtet sich nach dem jüngsten Endmonat aller Reihen. Liegt dieser in der Zukunft, wird stattdessen der Anfang des laufenden Monats herangezogen.

Das Ergebnis ist eine Memory-Relation. Die maximale Anzahl Felder einer Memory-Relation beträgt 255. Daher verdichtet die Funktion die Felder solange, bis höchstens 255 Felder übrig bleiben. Dabei wird folgendermaßen vorgegangen:

Grundsätzlich wird (auch ohne Verdichtung) für Daten, die in der Zukunft liegen (alle ab dem Ende des laufenden Monats), nur ein String-Feld namens Zukunft erzeugt, das das Intervall, auf dem in der Zukunft Änderungen erfolgt sind, als Text enthält (Beispiel: 20070201000000-20500101000000). Von Links aus werden solange Monate zu Jahren zusammengefasst, bis die maximale Feldanzahl unterschritten ist. Dies erfolgt jedoch nur, wenn mindestens zwei Monate in einem Jahr vorhanden sind.

Siehe auch DoModRecording(), ModifiedSince() und ModTabCompact().



toposoft 19.04.2024