订单总额 200;关联后直接求和是 320;明细 3 行。
这组答案来自一个小算例:订单 A=120、B=80;明细 A 有两行、B 有一行。
两张表各自都对,关联以后也可能把钱算两次。 要检查的是计算口径;把下面这段连同材料一起复制:
材料:
订单 A=120、B=80;明细 A 有两行、B 有一行。
任务:
用这个例子解释订单与明细一对多关联的重复累计。分别输出订单总额与明细行数的只读 SQL,并说明聚合发生在哪一层。
交付要求:
先给小样本的手算结果,再给只读 SQL 和表结构假设。
不能用 SUM(DISTINCT 金额)补救:两张订单可能金额相同。换一份数据时,不能用 SUM(DISTINCT 金额)补救:两张订单可能金额相同。
以上为演示案例,可替换成自己的材料。