rollende WocheHallo an alle,
Ich habe eine Datenbank, die Daten von Anfang 2019 bis April 2023 enthält.
Ich habe ein Skript erstellt, das bei erneuter Ausführung jede Woche neue Daten für 2023 hinzufügt.
Um zu verhindern, dass diese Datei zu schwer wird, möchte ich beim Neustart des Skripts zu Beginn der Woche eine rollierende Woche löschen können.
Heute sind wir zum Beispiel in Woche 21 (W21) des Jahres 2023. Wenn ich das Skript heute ausführe, kann ich den S1 von 2019 löschen und dann den S21 von 2023 hinzufügen.
Nächste Woche werden wir in S22 2023 sein, das Skript wird diese neue Woche hinzufügen, gleichzeitig möchte ich die S2 von 2019 löschen können, und so weiter...
Wenn ich das Skript jedoch mehrmals in derselben Woche ausführe, sollte es nicht mehrere aufeinanderfolgende Wochen löschen.
Beispiel : Wenn ich das Skript in S21 2023 dreimal ausführe, löscht es nur S1 2019 und nicht S1/S2/S3 2019 (da ich das Skript dreimal ausgeführt habe)
Ich habe eine Spalte „Startdatum“ in meiner Datenbank, die für die Entwicklung des Skripts nützlich sein wird. Hier ist eine Übersicht über die folgende Spalte:

Vielen Dank für Ihre Hilfe
DatenzugriffDatenmischung und -bereinigungBetreff: Glissante WocheIch kenne den Zweck der aktualisierten Datentabelle nicht, daher ist dieser Vorschlag möglicherweise nicht hilfreich. Anstatt Zeilen zu löschen, können Sie einen fortlaufenden Zeilenstatus für ausgeschlossene Zeilen in einer Formelspalte oder mit einem Skript berechnen. Sie sagten, Sie möchten vermeiden, dass die Datentabelle zu umfangreich wird, sodass dieser Ansatz möglicherweise nicht für Ihren Zweck geeignet ist.
Betreff: rollende WocheUm die Datentabelle nicht zu belasten, ist es mein Ziel, neue Daten hinzuzufügen, aber andererseits die „alten“ Daten zu löschen. Dadurch wäre ein Ausgleich zwischen der Datentabelle und der Dateigröße möglich.
Ich würde gerne ein Skript schreiben, um das zu tun, was ich in meinem ersten Beitrag gesagt habe.
Betreff: Glissante WocheExtrahieren Sie Daten aus einer Datenbank in eine JMPM-Datentabelle? Wenn ja, können Sie eine WHERE-Klausel verwenden, um den Zeitraum anzugeben.
Betreff: Glissante WocheErwägen Sie die Verwendung der Funktion „Datumsinkrement“. In diesem Beispiel zählt „Datumsinkrement“ 230 Wochen in die Vergangenheit und gibt das Datum des ersten Tages dieser Woche (Sonntag) zurück. Dann wählen wir einfach alle Zeilen mit Startdaten vor diesem Datum aus und löschen sie. Innerhalb jeder einzelnen Woche, in der Sie das Skript ausführen, ist das von „Datumsinkrement“ zurückgegebene Datum dasselbe, sodass Sie Ihre Datentabelle mehrmals pro Woche aktualisieren können, ohne eine unerwünschte Datenlöschung auszulösen.
Names Default to Here( 1 );
deleteDate = Date Increment( Today(), "Week", -230, "start" );
Data Table( "Rolling Week.jmp" ) << Select Where( :Start Date < deleteDate );
Data Table( "Rolling Week.jmp" ) << Delete Rows;