以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 有没有更好的计算累计数量的式? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=48643) |
-- 作者:scott518 -- 发布时间:2014/4/2 17:09:00 -- 有没有更好的计算累计数量的式? 请教大家,订单的累计入库的计算方式如下:其他单据类似 方式一: 在订单明细中增加列:累计入库 每次入库单保存时用其变动数量 + 累计入库 update到订单明细的累计入库 入库单删除时用累计入库 - 入库数量 update到订单明细的累计入库 这样的好处时速度快,当要查询所有订单的累计入出库数据时直接从订单明细中取数即可。 但这样的坏处是,当操作入库单保存或者删除时可能出现某种异常出错后更新数据的代码可能部份执行,累计入库就不准确了。 第二种方式: 入库单保存进不更新订单明细的累计入库,当要查询订单的累计入库时遍历每行然后去出入库单中计算此单的总入库数量出来 这种方式数据准确,不用跨表数据的代码,但数据量大时速度一定是很慢的 还有没有其他方式?谢谢!
|
-- 作者:Bin -- 发布时间:2014/4/2 17:37:00 -- 通常都用第二种方式. |
-- 作者:scott518 -- 发布时间:2014/4/2 17:49:00 -- 没有其他方式了吗?第二种速度是个问题啊 |
-- 作者:Bin -- 发布时间:2014/4/2 17:52:00 -- 通常都用统计的方式, 或者SQL语句统计 不会遍历一行行的来算,这样效率太差. |
-- 作者:scott518 -- 发布时间:2014/4/2 17:54:00 -- 那第一种方式可以改进吗? |
-- 作者:Bin -- 发布时间:2014/4/2 17:55:00 -- 没办法改进,这个方式就是有这个缺陷 |
-- 作者:scott518 -- 发布时间:2014/4/2 18:01:00 -- 谢谢,看来只能这样了,那有没有另外的方式呢 |
-- 作者:scott518 -- 发布时间:2014/4/3 11:24:00 -- 再请教下:如果要提取累计入库还不足的业务单据作为入库数据,如果不用方式一,用sql的话是下面这样吗? 但对于库存表来说,每种产品都有合格数量,不良数量,待检数量,报废数量,这些数量都是动态从十几张不同类别的进出库单据中产生的(有销售出货,退货,采购入库,退货,外协入库,退货,生产入出等等),这种情况如果不用方式一处理,方式二根本没办法从这么多单据中查询库存数据啊?这样的情况怎么办,还有没有更好的办法? |
-- 作者:Bin -- 发布时间:2014/4/3 11:30:00 -- 可以联合查询的呀,你上个例子吧 |
-- 作者:scott518 -- 发布时间:2014/4/3 11:46:00 -- 用十几张表怎么联合查询啊!就是想求个思路,没有例子。谢谢,看来还是先用方式一,个别出错的数据再调整了。 |