Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 向表中插入增量值_Tsql_Sql Insert - Fatal编程技术网

Tsql 向表中插入增量值

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

我正在尝试将值插入表中。一些字段已经声明了公式。插入后数据将正确增加。 例如,字段“SAPPRDONo”每行应增加1,从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 = 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