Tsql 向表中插入增量值
我正在尝试将值插入表中。一些字段已经声明了公式。插入后数据将正确增加。 例如,字段“SAPPRDONo”每行应增加1,从13366开始。 这是我的剧本:Tsql 向表中插入增量值,tsql,sql-insert,Tsql,Sql Insert,我正在尝试将值插入表中。一些字段已经声明了公式。插入后数据将正确增加。 例如,字段“SAPPRDONo”每行应增加1,从13366开始。 这是我的剧本: Declare @count int = 1 Declare @Qty int Declare @scrap int Declare @lot nvarchar(100) Declare @lotno nvarchar(10) Declare @insertlot nvar
Declare @count int = 1
Declare @Qty int
Declare @scrap int
Declare @lot nvarchar(100)
Declare @lotno nvarchar(10)
Declare @insertlot nvarchar(100)
Declare @yield int = 1
Declare @prdo int = 1
While @count <= 100
Begin
Set @Qty = round(430 * (@yield/100),0,0)
Set @insertlot = @lot + @lotno
Set @scrap = 430 - @qty
Insert into Report_comp_EWS (SpinwebABI, SAPPRDONo,
CompletionType, Quantity, ParentLotNo, NewLotNo, WhseFinish,
ItemCodeStart, ItemCodeFinish, ScrapQty)
values ('Stress Test', '13366', 'Complete', 4, 'StressTestAuto',
'StressTest1', 'E_CHD', 'WA00N44A', 'Lynx', 426)
Set @count = @count + 1
Set @yield = @yield + 1
Set @prdo = 13366 +1
Set @lotno = @lotno + 1
End
Declare@count int=1
声明@Qty int
声明@scrapint
声明@lot nvarchar(100)
声明@lotno nvarchar(10)
声明@insertlot nvarchar(100)
声明@yield int=1
声明@prdo int=1
当@count时,您正在为insert查询中的所有行插入'13366'。
你必须增加它。
请尝试以下内容:
Declare @count int = 1
Declare @Qty int
Declare @scrap int
Declare @lot nvarchar(100)
Declare @lotno nvarchar(10)
Declare @insertlot nvarchar(100)
Declare @yield int = 1
Declare @prdo int = 13366
While @count <= 100
Begin
Set @Qty = round(430 * @yield)/100,0,0)
Set @insertlot = @lot + @lotno
Set @scrap = 430 - @qty
Insert into Report_comp_EWS (SpinwebABI, SAPPRDONo,
CompletionType, Quantity, ParentLotNo, NewLotNo, WhseFinish,
ItemCodeStart, ItemCodeFinish, ScrapQty)
values ('Stress Test', CAST(@prdo as varchar(5)), 'Complete', 4, 'StressTestAuto',
'StressTest1', 'E_CHD', 'WA00N44A', 'Lynx', 426)
Set @count = @count + 1
Set @yield = @yield + 1
Set @prdo = @prdo +1 -- increment by 1
Set @lotno = @lotno + 1
End
Declare@count int=1
声明@Qty int
声明@scrapint
声明@lot nvarchar(100)
声明@lotno nvarchar(10)
声明@insertlot nvarchar(100)
声明@yield int=1
声明@prdo int=13366
而@count您为SAPPRDONo
插入的值总是13366,所以这并不奇怪。您应该首先将@prdo
设置为13366,在插入中插入@prdo
作为SAPPRDONo
的值,然后设置@prdo=@prdo+1
。谢谢。我会的。我对Qty变量也有问题。我需要它乘以收益率,然后除以100。收益率从1开始,然后增加到2、3、4等。例如,第一行的收益率应为430*1(收益率)/100,等于4.3,四舍五入为4。第二行应该是430*2/100,也就是9。对于第二行,它当前返回4。有什么想法吗?第一行的值是多少?我用下面的公式得到0。用--Set@Qty=round((430*@yield)/100,0,0)替换你的公式。您需要先乘以,然后再除以。
Declare @count int = 1
Declare @Qty int
Declare @scrap int
Declare @lot nvarchar(100) = 'StressTest'
Declare @lotno nvarchar(10) = 1
Declare @insertlot nvarchar(100)
Declare @yield int = 1
Declare @prdo int = 13366
While @count <= 100
Begin
Set @Qty = round(430 * @yield)/100,0,0)
Set @insertlot = @lot + @lotno
Set @scrap = 430 - @qty
Insert into Report_comp_EWS (SpinwebABI, SAPPRDONo, CompletionType,
Quantity, ParentLotNo, NewLotNo, WhseFinish, ItemCodeStart, ItemCodeFinish,
ScrapQty) values ('Stress Test' , CAST(@prdo as varchar(5)), 'Complete', CAST(@qty as
varchar(5)), 'StressTestAuto', Cast(@insertlot as nvarchar(100)), 'E_CHD',
'WA00N44A', 'Lynx', 426)
Set @count = @count + 1
Set @yield = @yield + 1
Set @prdo = @prdo +1
Set @lotno = @lotno + 1
End