滚动周大家好,
我有一个数据库,其中包含从 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;