10.11 等分时间段的计算

 

将两个日期之间时间段等分为 N 段。
从 2014/01/20 开始,到 2015/01/20 之前(不含)的销售记录,按日期等分到 4 组,并分别存到文件中。销售表部分数据如下:

ORDERID CUSTOMERID EMPLOYEEID ORDERDATE AMOUNT
10400 EASTC 1 2014/01/01 3063.0
10401 HANAR 1 2014/01/01 3868.6
10402 ERNSH 8 2014/01/02 2713.5
10403 ERNSH 4 2014/01/03 1005.9
10404 MAGAA 2 2014/01/03 1675.0

函数 range(s,e,k:n) 将 s,e 之间等分成 n 份,返回第 k 段和第 k+1 段的段头,返回结果为二序列。

脚本:

A B
1 =file(“Sales.txt”).import@qt()
2 [2014/01/20,2015/01/20]
3 for 4 =range(A2(1),A2(2), A3:4)
4 =A1.select(B3(1)<=OrderDate && OrderDate<B3(2))
5 =file(“Sales”+string(B3(1), “yyyyMMdd”)+“.txt”).export@t(B4)

A1 导入销售表
A2 定义起止日期
A3-B3 循环计算,使用 range 函数将日期区间分为 4 份,每次返回第 A3 份
B4 根据每个日期的子区间选出记录
B5 创建文件并导出 B4 选出的记录

运行结果:

Members
2014/01/20
2014/04/22
Members
2014/04/22
2014/07/22
Members
2014/07/22
2014/10/21
Members
2014/10/21
2015/01/20