5.9 迭代:提前终止的累计
循环中使用迭代计算,自行设置迭代中的计算表达式和终止条件。
根据销售表数据,统计 2014 年第一季度到哪一天完成了销售总额 15 万的季度目标。销售表部分数据如下:
| OrderID | Customer | SellerId | 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 |
| … | … | … | … | … |
脚本:
| A | |
|---|---|
| 1 | =connect(“db”).query@x(“select * from sales”) |
| 2 | =A1.select(year(OrderDate)==2014) |
| 3 | =A2.iterate((@+=Amount, ~~=OrderDate),0,@>150000) |
A1 连接数据源,读取销售表
A2 选出 2014 年数据
A3 使用函数 iterate() 迭代计算,初始值为 0。将销售额累加到当前记录,直到超过 15 万终止。函数返回订单日期。
运行结果:
| Value |
|---|
| 2014/03/25 |
