7.24 同序数据表和大维表的快速关联查询

 

两个游标和有序集文件的快速关联查询,要求游标对第一个连接字段有序。
根据相互关联的订单表、退货表和产品信息表,查询 2015 年各类产品的退货总金额。

imagepng

使用 cs.joinx() 函数连接文件,当游标对第一个连接字段有序时可以使用 @c 选项提速,@c 选项可以和 @q 选项同时使用。

脚本:

A
1 =file(“Returns.btx”).cursor@b().select(year(Date)==2015)
2 =file(“Order.btx”)
3 =file(“Product.btx”)
4 =A1.joinx@qc(OrderID,A2:ID,Amount;ProductID,A3:ID,Category)
5 =A4.groups(Category; sum(Amount))

A1 创建订单明细表游标
A2 创建订单表集文件对象
A3 创建产品表集文件对象
A4 使用 cs.joinx 函数按订单 ID 连接订单表,按产品 ID 连接产品表,@qc 选项同时使用进行提速
A5 分组汇总各类产品的退货金额

运行结果:

Category Amount
Electric appliance 1854.5
Fruits 251.5