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 |