问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQL 循环操作

发布网友 发布时间:2022-04-26 05:06

我来回答

2个回答

热心网友 时间:2022-06-21 00:02

Create Table #Tmp

(

 ID int identity(1,1),

货号 Varchar(10),

订货数量 int,

库存 int,

发货数量 int

)


Insert Into #Tmp(货号,订货数量,库存,发货数量) Values('SP001',10,28,0)

Insert Into #Tmp(货号,订货数量,库存,发货数量) Values('SP001',30,28,0)

Insert Into #Tmp(货号,订货数量,库存,发货数量) Values('SP002',30,10,0)

Insert Into #Tmp(货号,订货数量,库存,发货数量) Values('SP002',6,10,0)

Insert Into #Tmp(货号,订货数量,库存,发货数量) Values('SP002',5,10,0)

Insert Into #Tmp(货号,订货数量,库存,发货数量) Values('SP003',3,28,0)


Declare @ID Int

DECLARE @货号 Varchar(10)

Declare @旧货号 Varchar(10)

Declare @订货数量 int

Declare @库存 int

Declare @Tmp int


Set @旧货号=''


DECLARE vendor_cursor CURSOR FOR 

Select  ID,货号,订货数量,库存 From #Tmp Order By 货号


OPEN vendor_cursor;


FETCH NEXT FROM vendor_cursor 

INTO @ID,@货号, @订货数量,@库存


WHILE @@FETCH_STATUS = 0

BEGIN

    if (@旧货号<>@货号)

Begin

Set @旧货号=@货号

Set @Tmp=@库存

End 

--库存小于0,不发货

if @Tmp<=0

Update #Tmp Set 库存=@Tmp Where ID=@ID

Else

Begin

--订货数小于等于库存数,发订货数,否则发库存数

if (@订货数量<=@Tmp)

Begin

Update #Tmp Set 发货数量=@订货数量,库存=@Tmp Where ID=@ID

Set @Tmp=@Tmp-@订货数量

End

Else

Begin

Update #Tmp Set 发货数量=@Tmp,库存=@Tmp Where ID=@ID

Set @Tmp=@Tmp-@Tmp

End

End

    FETCH NEXT FROM vendor_cursor 

    INTO @ID,@货号, @订货数量,@库存

END

CLOSE vendor_cursor

DEALLOCATE vendor_cursor


Select * From #Tmp

Drop Table #Tmp



热心网友 时间:2022-06-21 00:02

按照您的说法,感觉SP0002的数据本身就不正确了哦?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
黄家驹是谁.拜托了各位 谢谢 最近这几天去 蓝调薰衣草庄园 还能赶上薰衣草盛开么 有没有去过的给点... 日本留学大学假期怎么放的 塑料水管怕水泥吗 孕妇腹壁脂肪厚怎么减 孕期肚子赘肉怎么减下去? 孕妇肚子怎么减肥啊 怀孕怎么减肚子上的肉 考研的难度相当于高考吗? 宏基5536笔记本15.6寸屏幕分辨率最高可以设到多少,我用HDMI线连液晶电视... 怎样在SQLServer中将查询的结果循环。 西门子多门冰箱的电源插座有什么要求? 我有多条sql的更新语句,怎么用一个循环语句执行一次更新整一张数据表... 西门子中央空调开关怎么用? sqlserver中游标循环中只更新当前行的方法 手机贴膜手机表面可以涂酒精擦么? sql语句的循环的使用(急) 有没有懂电懂开关插座的。我家买的西门子睿智系列怎么样?买贵了吗?两室一厅开关插座够用吗? sql语句循环 想做到懒人减肥,睡觉都瘦,怎样的睡眠习惯能燃脂呢? 怎样干净地撕去手机屏幕保护膜 西门子开关插座在选购插座的时候要如何选择? SQL中循环语句 韭菜到几月不能收割 sql 中怎样利用循环将一个表中的数据按行依次插入到另一个表中 起名时应注意些什么 怎样处理手机保护膜上的污渍 SQL数据库函数如何对多结果进行循环处理 厦门高级社会工作师职业考试报考流程是怎么样的? 起名的注意事项: SQL语句中怎样循环插入规律数据啊?? 我的号码被拉入黑名单是怎么回事? 在SQL中如何循环查询 田径训练对发展小学足球专项的重要性有哪些? 在SQL中如何利用循环语句实现对表格数据的循环插入,带语句,带解释,我... 号码黑名单怎么办啊!!! sql循环读取多个数据库 小学田径训练队如何选材? 谁有一个好听的精灵名字? 田径运动对儿童成长有好处吗 说几个宠物小精灵的名字【多点 小学训练田径会影响健康吗 菜鸟驿站正在派件是什么意思 程序中执行循环执行SQL插入,但数据进入数据库的顺序确不一样 宝宝起名要注意什么? 怎么循环用SQL语句取出数据 奥比岛给小精灵起名字 SQL利用循环语句插入数据 快递已送到菜鸟驿站但我的手机关机了,没有保持通畅,显示正在派件中? 谁能给我的奥比精灵起一个好听名字?(要两个以上)