小白求教下面需求如何实现

yuxiannao6608 2021-04-14 11:08:24
库存表:
ID item_code qty
1 AAA 6
2 AAA 12
3 AAA 8

传入一个ITEM_CODE='AAA'和QTY=20,实现如下效果
ID item_code qty
1 AAA 0
2 AAA 0
3 AAA 6
请各位大佬帮忙写一段procedure来显示!非常感谢
...全文
171 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nayi_224 2021-04-15
  • 打赏
  • 举报
回复
select t1.*,
	   case when t1.sm < 20 then 0
		    when t1.sm >= 20 and lead(t1.sm) over(order by t1.id) < 20 then
			  t1.sm - 20
		    else t1.qty
	   end
  from (
select t1.*,
	   sum(t1.qty) over(partition by t1.item_code order by id) sm
  from tab1 t1
) t1
yuxiannao6608 2021-04-14
  • 打赏
  • 举报
回复
AAA的库存总数是26,需求量是20,依次扣减,直至满足需求量。
顾染尘 2021-04-14
  • 打赏
  • 举报
回复
这是有什么逻辑在吗 传qty=20 下面的第一列AAA的6变成0 第二列的12变成0 第三列的8变成6??

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧