7.3 关联查询:多表关联

 

在 3 个关联的表中,根据关联条件筛选记录并计算。
根据相互关联的订单表、订单明细表和订单回款表,查询哪些订单尚未回款。

imagepng

使用 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