Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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
Sql 如何从最后一个端点重新启动光标_Sql_Sql Server_Database_Sql Server 2008 R2_Cursor - Fatal编程技术网

Sql 如何从最后一个端点重新启动光标

Sql 如何从最后一个端点重新启动光标,sql,sql-server,database,sql-server-2008-r2,cursor,Sql,Sql Server,Database,Sql Server 2008 R2,Cursor,如何在if条件后重新启动此光标,并希望在应答中再次从1开始行。\n是否希望从if条件的终点重新启动光标 declare @SUM DECIMAL(20,2) declare @EMPCODE varchar(10) declare @NETPAY DECIMAL(10,2) declare ABC scroll cursor for select EMPCODE,NETPAY from TXXL where DATE='04-30-2015' open ABC de

如何在
if
条件后重新启动此光标,并希望在应答中再次从1开始行。\n是否希望从if条件的终点重新启动光标

  declare @SUM DECIMAL(20,2)
  declare @EMPCODE varchar(10)
  declare @NETPAY DECIMAL(10,2)
  declare ABC scroll cursor for 
  select EMPCODE,NETPAY from TXXL where DATE='04-30-2015'
  open ABC
  declare @TEMP table(
  EMPCODE varchar(10) primary key,
  NETPAY DECIMAL(10,2),
  SUM  varchar(max)
   )

  set @SUM=0
  fetch first from ABC into @EMPCODE,@NETPAY

  while @@fetch_status=0

  begin

  fetch next from ABC into @EMPCODE,@NETPAY

  SET @SUM=@SUM+@NETPAY


  if(@SUM<=900000)



  insert into @TEMP(EMPCODE,NETPAY,SUM) values(@EMPCODE,@NETPAY,@SUM)



  end

  select ROW_NUMBER() OVER(ORDER BY EMPCODE) ROWNUMBER,EMPCODE,NETPAY,SUM from @TEMP
close ABC
deallocate ABC
想要这样的答案:-

  ROWNUMBER EMPCODE NETPAY      SUM
       1    000066  29079.00    29079.00
       2    000076  34515.00    63594.00
       3    000084  15493.00    79087.00
       4    000090  30399.00    109486.00
       5    000109  25812.00    135298.00
       6    000111  31453.00    166751.00
       7    000113  30408.00    197159.00
       8    000116  28040.00    225199.00
       9    000124  27901.00    253100.00
       10   000128  24445.00    277545.00
       11   000131  35760.00    313305.00
       12   000141  23345.00    336650.00
       13   000150  48965.00    385615.00
       14   000179  39350.00    424965.00
        1   000181  40814.00    40814.00
        2   000182  24335.00    65149.00
        3   000196  29439.00    94588.00
        4   -----    ------      -------
        5   -------- -----      -------

请记住,我们没有您的表格或数据。我不知道你想在这里实现什么。你能给你的问题添加一些样本数据和预期结果吗?嗨。以下是IF语句的MSDN帮助页:。光标可以非常慢。你确定这是路吗?也许如果您能提供一些样本数据和样本输出,我们可以帮助您找到更好的方法。
  ROWNUMBER EMPCODE NETPAY      SUM
       1    000066  29079.00    29079.00
       2    000076  34515.00    63594.00
       3    000084  15493.00    79087.00
       4    000090  30399.00    109486.00
       5    000109  25812.00    135298.00
       6    000111  31453.00    166751.00
       7    000113  30408.00    197159.00
       8    000116  28040.00    225199.00
       9    000124  27901.00    253100.00
       10   000128  24445.00    277545.00
       11   000131  35760.00    313305.00
       12   000141  23345.00    336650.00
       13   000150  48965.00    385615.00
       14   000179  39350.00    424965.00
        1   000181  40814.00    40814.00
        2   000182  24335.00    65149.00
        3   000196  29439.00    94588.00
        4   -----    ------      -------
        5   -------- -----      -------