sqlserver语句如何循环加减数据

现有库存数量表k,销售订单表ship,入库单r,

需要将k表初始数量+r表入库数量-ship表的销售数量,循环+入库数量-销售数量

循环中判断初始库存数量+入库数量是否大于销售数量

该如何实现?

yzm698353 发布于 2021-9-7 10:19
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-9-7 10:24(编辑于 2021-9-7 10:24)

https://blog.csdn.net/u012324101/article/details/80251003

把每天的初始数量+入库数量-出库数量算出来,然后用上方链接中的语法进行逐日累计

最佳回答
0
烟尘Lv6高级互助
发布于2021-9-7 10:31(编辑于 2021-9-8 09:32)

如果只是看现库存或者一段时间内库存是否为负:

select k.物料,初始数量+入库数量-销售数量 from k

left join (select 物料,sum(入库数量) as 入库数量 from r group by 物料) r on r.物料=k.物料

left joni (select 物料,sum(销售数量) as 销售数量 from ship group by 物料) s on s.物料=k.物料

如果要检查在库存变化过程中是否有负库存,那就只能做循环,但是sql做循环效率太低,建议用程序数据集,在java里做效率高

实现思路:

1、期初、入库、出库数据合并成视图,按时间排序,期初、入库正数,出库负数

2、循环k表物料,按物料查询视图,初始数量按时间顺序加减出入库数量,判断是否为负,把结果插入返回列表

  • yzm698353 yzm698353(提问者) 目前不太清楚如何循环,以及第二次循环使用上次的结余数量 ,需求是要循环判断每次的入库数量+上次的结余数量 ,是否大于这次订单需求数量,从而得出入库准时率 要求是用sql直接做出数据集来,运行速度应该会很慢吧?
    2021-09-07 10:41 
  • 烟尘 烟尘 回复 yzm698353(提问者) 系统允许负库存的话可以算出来,如果不允许就没意义了
    2021-09-07 10:49 
  • 2关注人数
  • 473浏览人数
  • 最后回答于:2021-9-8 09:32
    请选择关闭问题的原因
    确定 取消
    返回顶部