定义了一个游标
DECLARE Emp_Code SCROLL CURSOR
FOR SELECT   员工编号
FROM dbo.hr_KqFlow group by 员工编号
OPEN Emp_Code
FETCH NEXT FROM Emp_Code 
INTO   @Emp_CodeWHILE (@@fetch_status=0)
Begin----此处定义第2个游标
DECLARE Cursor_TemPro SCROLL CURSOR
FOR SELECT dbo.hr_employee.Emp_RzDate AS 入职日期,
dbo.hr_KqFlow.员工编号FROM dbo.hr_KqFlow LEFT OUTER JOIN
      dbo.hr_employee ON dbo.hr_KqFlow.员工编号 = dbo.hr_employee.Emp_Code 
       where dbo.hr_KqFlow.日期 between @DateS and @DateE  and  dbo.hr_KqFlow.员工编号=@Emp_CodeOPEN Cursor_TemPro
FETCH NEXT FROM Cursor_TemPro 
INTO   @Emp_RzDate,@Emp_Code
WHILE (@@fetch_status=0)
begin
---------一些代码endend成了死循环     郁闷了,难道游标不能这样使用循环嵌套

解决方案 »

  1.   

    DECLARE Emp_Code SCROLL CURSOR
    FOR SELECT   员工编号
    FROM dbo.hr_KqFlow group by 员工编号
    OPEN Emp_Code
    FETCH NEXT FROM Emp_Code 
    INTO   @Emp_CodeWHILE (@@fetch_status=0)
    Begin ----此处定义第2个游标
    DECLARE Cursor_TemPro SCROLL CURSOR
    FOR SELECT dbo.hr_employee.Emp_RzDate AS 入职日期,
    dbo.hr_KqFlow.员工编号FROM dbo.hr_KqFlow LEFT OUTER JOIN
          dbo.hr_employee ON dbo.hr_KqFlow.员工编号 = dbo.hr_employee.Emp_Code 
           where dbo.hr_KqFlow.日期 between @DateS and @DateE  and  dbo.hr_KqFlow.员工编号=@Emp_Code

    OPEN Cursor_TemPro
    FETCH NEXT FROM Cursor_TemPro 
    INTO   @Emp_RzDate,@Emp_Code


    WHILE (@@fetch_status=0)
    begin
    ---------一些代码
    FETCH NEXT FROM Cursor_TemPro 
    INTO   @Emp_RzDate,@Emp_Code --到下一条记录
    end
    close Cursor_TemPro --加关闭游标
    deallocate Cursor_TemPro --销毁游标
    FETCH NEXT FROM Emp_Code  --到下一条记录
    INTO   @Emp_Code
    end
    close Emp_Code --加关闭游标
    deallocate Emp_Code --销毁游标
      

  2.   

    FETCH NEXT FROM Emp_Code  --到下一条记录
    INTO   @Emp_Code
    ------------------------------------------------------------》
    没加这句,谢了
    接触存储过程不到一个星期  很多不懂
    送你100分 早日成钻石