7.3 关联查询:多表关联
在 3 个关联的表中,根据关联条件筛选记录并计算。
根据相互关联的订单表、订单明细表和订单回款表,查询哪些订单尚未回款。
使用 join() 函数进行连接。
脚本:
A | |
---|---|
1 | =connect(“db”) |
2 | =A1.query(“select * from Order”) |
3 | =A1.query(“select * from Detail”) |
4 | =A1.query@x(“select * from Payment”) |
5 | =A3.group(ID) |
6 | =A4.group(ID) |
7 | =join(A2:Order,ID; A5:Detail,ID; A6:Payment,ID) |
8 | =A7.new(Order.ID:ID,Detail.sum(Amount):Amount,Payment.sum(Amount):Pay) |
9 | =A8.select(Pay<Amount) |
A1 连接数据库
A2 查询订单表
A3 查询订单明细表
A4 查询订单回款表
A5 订单明细表按订单 ID 分组
A6 订单回款表按订单 ID 分组
A7 使用 join 函数按订单 ID 连接订单表、订单明细表和订单回款表
A8 创建序表,汇总每笔订单的订单金额和还款金额
A9 选出还款金额小于订单金额的记录
运行结果:
ID | Amount | Pay |
---|---|---|
AROUT | 55492.0 | 35980 |
BERGS | 3398.55 | 1080 |
… | … | … |