我对所述标题有疑问。我想从这两个表中获取stocks_on_hand,即:
stocks_added
product_id quantity_added
ANK001 50
stocks_released
product_id quantity_released
ANK001 20
获取stocks_on_hand(两个表的结果)之后,我想将它加入到产品表中:
product_id product_name price
ANK0001 ANKLET 200
答案 0 :(得分:0)
使用joins和sum():
select
p.product_id, product_name, price,
coalesce(sum(quantity_added), 0) - coalesce(sum(quantity_released), 0) as stocks_on_hand
from products p
left join stocks_added a on a.product_id = p.product_id
left join stocks_released r on r.product_id = p.product_id
group by p.product_id, product_name, price
使用外部(即左侧)连接意味着无论是否存在库存移动表中的行,您都会为每个产品获取一行。使用coalesce()
表示当库存表中没有行时,使用默认值零。