如何在Firebird中使用GROUP BY单表分组统计实现简易库存计算
Firebird 库存统计SQL实现方案
核心实现代码
你可以通过CASE WHEN对出入库类型做数值映射,再配合聚合函数求和实现需求,请将SQL中的你的业务表名替换为实际的表名即可使用:
SELECT Codigo, Configuracao, SUM( CASE TIPO WHEN 'E' THEN 1 WHEN 'S' THEN -1 ELSE 0 END ) AS final_stock FROM 你的业务表名 GROUP BY Codigo, Configuracao
可选扩展逻辑
- 若需要过滤掉最终库存为0的产品,可在
GROUP BY语句后追加过滤条件:HAVING SUM(CASE TIPO WHEN 'E' THEN 1 WHEN 'S' THEN -1 ELSE 0 END) <> 0 - 若你的表中存在单条记录对应多件商品的数量字段(比如字段名为
QUANTIDADE),可调整计算逻辑适配批量出入库场景:SUM(CASE TIPO WHEN 'E' THEN QUANTIDADE WHEN 'S' THEN -QUANTIDADE ELSE 0 END) AS final_stock
内容的提问来源于stack exchange,提问作者Lil Programmer
相关产品推荐
相关产品推荐

