abcdefg0099 发表于 2024-6-18 00:48:19

求一个能自动计算库存的视图

采购入库表有主子表   子表是记录商品入库(字段是 商品表ID 商品数量)


采购退货表有 主子表   子表是计入商品退货(字段是 商品表ID 商品数量)

商品信息表
我向 通过采购入库 出库的时候自动通过视图计算商品的库存

商品信息表的id查询出采购入库子表的商品id与数量 - 采购退货表的id,与数量    (采购入库与采购退货的商品ID是相同的)

Syl 发表于 2024-6-18 00:48:20



select 商品表ID,SUM(数量)数量 from
(SELECT 商品表ID,SUM(商品数量) AS 数量 from 采购入库子表 group by 商品表ID
UNION
SELECT 商品表ID,-SUM(商品数量)AS 数量 FROM 采购退货子表group by 商品表ID)aa
group by 商品表ID


lml0126 发表于 2024-6-18 06:37:35

这种还是使用存储过程方便点,或者使用论坛中的插件来实现

追风 发表于 2024-6-18 08:34:11

SELECT
    p."ID" AS "商品ID",
    p."商品名称",
    COALESCE(p."库存数量", 0) +   
    COALESCE(SUM(CASE WHEN pi."商品ID" IS NOT NULL THEN pi."商品数量" ELSE 0 END), 0) -   
    COALESCE(SUM(CASE WHEN pr."商品ID" IS NOT NULL THEN pr."退货数量" ELSE 0 END), 0) AS "库存数量"
FROM
    "商品信息" p
LEFT JOIN
    "采购入库子表" pi ON p."ID" = pi."商品ID"
LEFT JOIN
    "采购退货子表" pr ON p."ID" = pr."商品ID"
GROUP BY
    p."ID", p."商品名称", p."库存数量";

abcdefg0099 发表于 2024-6-18 16:19:57

Syl 发表于 2024-6-18 08:43
select 商品表ID,SUM(数量)数量 from
(SELECT 商品表ID,SUM(商品数量) AS 数量 from 采购入库子表 gro ...

好的我试试你这个感觉可以

Syl 发表于 2024-6-18 16:29:37

abcdefg0099 发表于 2024-6-18 16:19
好的我试试你这个感觉可以

这种数据量少没问题,如果很大,要考虑期间和账表的概念

abcdefg0099 发表于 2024-6-18 16:41:20

本帖最后由 abcdefg0099 于 2024-6-18 16:56 编辑

Syl 发表于 2024-6-18 16:29
这种数据量少没问题,如果很大,要考虑期间和账表的概念
如果数据多,用哪种比较好?

我大概懂你的意思了可能要做账期了比如1月1号-30号的账期结算 又到2月1号-2月30号的账期了



那我向问了这个账期应该如何实现?

Syl 发表于 2024-6-18 17:04:57

abcdefg0099 发表于 2024-6-18 16:41
如果数据多,用哪种比较好?

我大概懂你的意思了可能要做账期了比如1月1号-30号的账期结算 又到2 ...

比如你有期间的概念,按年月做正常的结转。当前年度24年6月,已经结转到3月,则3月及以前的账表(按月来)已经固定了,查询之前的直接可以调用账表。查询之后的比如4月份的,则可以用3月期初加上4月份的本期入库和出库来算实时库存。
这样的好处1是以前结转的账期不能随便修改单据,2是需要汇总的数据会少很多,速度更快

Lay.Li 发表于 2024-6-19 09:26:32

感谢各位大佬的支持~
sql我们也不是很擅长,您现在是想做一个库存管理系统吧,可以参考下方的帖子哈

项目实战-搭建库存管理系统
页: [1]
查看完整版本: 求一个能自动计算库存的视图