sql先进先出在回退的问题

dengixnyu 2013-04-01 02:37:07
有没有sql高手知道 当数据库先进先出之后,然后在回退到初始态怎么写?
意思就是如下就是先进先出的存储过程
ALTER proc [dbo].[wsp]
@wlcode nvarchar(50),--物料编号
@cost int --出库量
as
--先得出该货物的库存是否够
declare @spare float --剩余库存
select @spare= sum(inqty)-sum(foutqty) from a074 where materialcode=@wlcode
if(@spare>=@cost)
begin
--根据入库id采用先进先出原则对货物的库存进行处理
update a074 set foutqty=
case when (select @cost-isnull(sum(inqty),0)+isnull(sum(foutqty),0) from a074 where materialcode=@wlcode and mxid<=a.mxid and inqty!=foutqty)>=0
then a.inqty
else
case when (select @cost-isnull(sum(inqty),0)+isnull(sum(foutqty),0) from a074 where materialcode=@wlcode and mxid<a.mxid and inqty!=foutqty)<0
then 0
else (select @cost-isnull(sum(inqty),0)+isnull(sum(foutqty),0)+a.foutqty from a074 where materialcode=@wlcode and mxid<a.mxid and inqty!=foutqty)
end
end
from a074 a where materialcode=@wlcode and inqty!=foutqty
end
else
raiserror('库存不足',16,1)
return

,当用户在界面上点击保存的时候,我会从上往下修改sql出库数量,但是这个时候用户点击删除了。怎么把刚修改的结果又回退到修改之前呢? 求高手指点。(有点类是后进先出),在网上找了好久,都没找到办法。或者谁有更好的办法代替我原来的想法。
...全文
286 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengixnyu 2013-04-12
  • 打赏
  • 举报
回复
在来个大神啊。不然这让我怎么结贴啊?
禁用F3 2013-04-10
  • 打赏
  • 举报
回复
不懂楼主为啥要用DBA做BLL的事情? 回到楼主的问题上应该用事务处理会好一些吧。这么多IF也套得太多了
dengixnyu 2013-04-01
  • 打赏
  • 举报
回复
除了退货表没有,你说的那些表我都有,我把退货放入库了。 我现在其实是在入库明细表 多添加了1列,出库(数量) ,每次执行那个存过过程之后,先是修改入库明细的中的出库数量那一列,接着又把出库信息新增到出库主、从表里面。 为了实现那个"回退"然后在出库从表里面多加了2列 (入库mxid,和数量。如果多个的话我会用,隔开的) 最后在后台用循环实现的"回退" ,,感觉这样做好鸡肋。。。
---涛声依旧--- 2013-04-01
  • 打赏
  • 举报
回复
建议楼主分别建立:库存表、出库总表、出库明细表、入库总表、入库明细表、退货总表、退货明细表
dengixnyu 2013-04-01
  • 打赏
  • 举报
回复
。。那什么时候最终提交?。。我只有一个保存按钮啊,。没有审核按钮啊
快溜 2013-04-01
  • 打赏
  • 举报
回复
保存的时候做假修改,即标记性修改,最终提交在操作底层数据。
dengixnyu 2013-04-01
  • 打赏
  • 举报
回复
或者可以换个想法,就是您有办法改下上面的的存储过程吗?就可以让这个存储过程支持负数的数量, exec wsp '10厘钻咀' ,14 ,这样修改之后 在执行exec wsp '10厘钻咀' ,-14 变回初始的表内容
黄_瓜 2013-04-01
  • 打赏
  • 举报
回复
引用 2 楼 dengixnyu 的回复:
对的。我就是这样想的,既然能从上往下修改,。那么应该也可以从下往上修改吧。(删除并不是退货)。再说退货的就当新入库数量了。
。。。。。。。。。。。。
dengixnyu 2013-04-01
  • 打赏
  • 举报
回复
对的。我就是这样想的,既然能从上往下修改,。那么应该也可以从下往上修改吧。(删除并不是退货)。再说退货的就当新入库数量了。
黄_瓜 2013-04-01
  • 打赏
  • 举报
回复
退货的流程应该怎么走就怎么写 难道他点一下删除 就回到之前没有点击保存的状态吗

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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