滾動週大家好,
我有一個數據庫,其中包含從 2019 年初到 2023 年 4 月的數據。
我創建了一個腳本,當我再次運行它時,每週都會添加 2023 年的新數據。
為了防止這個文件變得太重,我希望在一周開始時重新啟動腳本時能夠刪除滾動週。
例如,今天是 2023 年的第 21 週 (W21)。 我今天運行腳本的時候可以刪除2019年的S1,然後添加2023年的S21。
下週我們將在 S22 2023,腳本將添加新的一周,同時我希望能夠刪除 2019 年的 S2,等等......
但是,如果我在同一周內多次運行該腳本,它應該不會連續刪除幾個星期。
例子:如果我在 S21 2023 中運行腳本 3 次,它只會刪除 S1 2019 而不是 S1/S2/S3 2019(因為我運行了腳本 3 次)
我的數據庫中有一個“開始日期”列,這對腳本的開發很有用。 以下是對以下專欄的概述:

感謝您的幫助
數據訪問數據混合和清理回复:semaine glissante我不知道更新數據表的目的,所以這個建議可能沒有幫助。 您可以在公式列中或使用腳本為排除的行計算滾動行狀態,而不是刪除行。 你說你想避免數據表變得太重,所以這種方法可能不適合你的目的。
回复:滾動週為了避免拖累數據表,我的目標是添加新數據,但另一方面刪除“舊”數據。 這將允許數據表與文件大小保持平衡。
我想寫一個腳本來完成我在第一篇文章中所說的。
回复:semaine glissante您是從數據庫中提取數據到 JMPM 數據表嗎? 如果是這樣,您可以使用 WHERE 子句來指定時間段。
回复:semaine glissante考慮使用日期增量函數。 在此示例中,Date Increment 計算過去 230 週並返回該週第一天(星期日)的日期。 然後我們只選擇開始日期早於該日期的所有行並將其刪除。 在您運行腳本的任何一周內,Date Increment 返回的日期都是相同的,因此您可以每週多次更新數據表,而不會觸發不需要的數據刪除。
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;