我有一个包含五列的库存移动表:产品ID,移动数量,日期,源库存,目标库存。该表包含不同库存之间的产品移动信息。对于产品从仓库中退出的已售产品,源库存具有一个值,目标库存为空。对于将产品送入仓库的购买产品,目标库存具有值,而源库存为空。我想要每个产品的每日库存。我使用了这样的代码:
SELECT product_id id
, SUM(CASE WHEN target_stock > 0 THEN qty ELSE 0 END)
- SUM(CASE WHEN source_stock > 0 THEN qty ELSE 0 END) stock
, DATE(date) date
FROM stock_movement
GROUP
BY product_id
, DATE(date)
当我按日期删除分组时,代码返回给我今天的真实库存。但是我想要每天的库存,此代码返回我每一天的数量总和,而不是在此之前的天数相加。例如,当我有售出产品时,它会向我返回售出数量的负值,并且不会从前一天的库存中减去该数字。我该如何解决每天早于几天的总和的问题?