我有两张桌子: - 商品(编号、数量、价格) -entry_voucher(数量,价格,id_table1) 我想计算entry_voucher中每条记录的加权平均值并更新表项目中的价格
我尝试过 boucles 但它的代码太长我想用 sql 来实现它
不确定我是否完全理解你的目标,但这个查询可以帮助理解原理:
UPDATE items
SET price = (
SELECT SUM(ev.quantity * ev.price) / SUM(ev.quantity)
FROM entry_voucher ev
WHERE ev.id_table1 = items.id
GROUP BY ev.id_table1
);
此 SQL 查询选择 items 中的每个条目,并将其价格更新为 entry_voucher 中价格的加权平均值(按数量加权)。 GROUP BY 子句按 id_table1 对总和进行分组,确保每个商品的价格是根据 entry_voucher 中的相关行计算的。