找回密码
 立即注册

QQ登录

只需一步,快速开始

abcdefg0099

高级会员

79

主题

245

帖子

1010

积分

高级会员

积分
1010
abcdefg0099
高级会员   /  发表于:2024-6-18 00:48  /   查看:1120  /  回复:8
1金币
采购入库表有  主子表   子表是记录商品入库(字段是 商品表ID 商品数量)


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

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

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

最佳答案

查看完整内容

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

8 个回复

倒序浏览
最佳答案
最佳答案
Syl悬赏达人认证
银牌会员   /  发表于:2024-6-18 00:48:20
来自 4#


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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
lml0126
高级会员   /  发表于:2024-6-18 06:37:35
2#
这种还是使用存储过程方便点,或者使用论坛中的插件来实现
回复 使用道具 举报
追风
中级会员   /  发表于:2024-6-18 08:34:11
3#
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
5#
Syl 发表于 2024-6-18 08:43
select 商品表ID,SUM(数量)数量 from
(SELECT 商品表ID,SUM(商品数量) AS 数量 from 采购入库子表 gro ...

好的我试试你这个  感觉可以
回复 使用道具 举报
Syl悬赏达人认证
银牌会员   /  发表于:2024-6-18 16:29:37
6#
abcdefg0099 发表于 2024-6-18 16:19
好的我试试你这个  感觉可以

这种数据量少没问题,如果很大,要考虑期间和账表的概念
回复 使用道具 举报
abcdefg0099
高级会员   /  发表于:2024-6-18 16:41:20
7#
本帖最后由 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
8#
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
9#
感谢各位大佬的支持~
sql我们也不是很擅长,您现在是想做一个库存管理系统吧,可以参考下方的帖子哈

项目实战-搭建库存管理系统
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部