ALTER           PROCEDURE cp_ExcelToSQL_bank2
AS
 declare @stud_name nvarchar(10),
 @stud_ID nvarchar(20),
         @stud_meoney int,
         @stud_meoney1 int,
        @countx int ---
      set @countx=0---DECLARE User_info CURSOR FOR        select 客户名称,客户帐号,[应收/付金额],[实际发生额] from TestEx4   
                                                  
OPEN User_infoFETCH NEXT FROM User_info INTO @stud_name,@stud_ID,@stud_meoney,@stud_meoney1
WHILE @@FETCH_STATUS = 0
BEGIN        
 exec cp_edit_StudInfo_bank2 @stud_name,@stud_ID,@stud_meoney,@stud_meoney1
 FETCH NEXT FROM User_info INTO  @stud_name,@stud_ID,@stud_meoney,@stud_meoney1     set @countx=@countx+1;  --------
END
    return @countx     --------
CLOSE User_info
DEALLOCATE User_info-----------------------------------表:TestEx4 中如果有相同的记录。但是,[应收/付金额],[实际发生额]这两个字段的值不一样。比如说,有两条相同的,也有三条相同的。我想把它们的,[应收/付金额],[实际发生额]  这两个字段分别相加,然后再去执行: cp_edit_StudInfo_bank2  这个存储过程,并把相加后的值当做参数。小弟实在是不懂,连想法都没有思路。现在分不多了。求高手帮忙,谢谢了。

解决方案 »

  1.   

    是不是要这样?ALTER           PROCEDURE cp_ExcelToSQL_bank2
    AS
     declare @stud_name nvarchar(10),
     @stud_ID nvarchar(20),
             @stud_meoney int,
             @stud_meoney1 int,
            @countx int ---
          set @countx=0---DECLARE User_info CURSOR FOR        select 客户名称,客户帐号,sum([应收/付金额]) as [应收/付金额],sum([实际发生额]) as [实际发生额] from TestEx4   
                                                      
    OPEN User_infoFETCH NEXT FROM User_info INTO @stud_name,@stud_ID,@stud_meoney,@stud_meoney1
    WHILE @@FETCH_STATUS = 0
    BEGIN        
     exec cp_edit_StudInfo_bank2 @stud_name,@stud_ID,@stud_meoney,@stud_meoney1
     FETCH NEXT FROM User_info INTO  @stud_name,@stud_ID,@stud_meoney,@stud_meoney1     set @countx=@countx+1;  --------
    END
    CLOSE User_info
    DEALLOCATE User_info    return @countx     --------这句必须搬到后面
      

  2.   

    楼上的你忘记了分组啊
    select 客户名称,客户帐号,sum([应收/付金额]) as [应收/付金额],sum([实际发生额]) as [实际发生额] from TestEx4 Group by 客户名称,客户帐号