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 |
| … | … | … |
