聚合函数,存储过程,该怎么处理

聚合函数,存储过程
declare @CD_id varchar(20),@City_id varchar(10),@CurrDevo float,@CurrInve float ,@date datetime
declare @N int
set @N=0
set @date=getdate()

declare cur cursor for  
select CD_id,City_id,CurrDevo,CurrInve from CityDevo
open cur
fetch next from cur into @CD_id,@City_id,@CurrDevo,@CurrInve

while @@fetch_status=0
begin
 
 /*select @CD_id,@City_id,@CurrDevo,@CurrInve*/
 declare cur1 cursor for
 select sum(CurrInve) as suminve from CityDevo where City_id=@City_id
 open cur1
 fetch next from cur1 into @CurrInve
  while @@fetch_status=0
  begin

***************
 

  fetch next from cur1 into @CurrInve
  end
  close cur1
  deallocate cur1


print @CurrInve


set @N=@N+1  

fetch next from cur into @CD_id,@City_id,@CurrDevo,@CurrInve

end
close cur
deallocate cur
GO


如何把sum(CurrInve)输入出来?[b][/b][color=#FF0000][/color]

------解决方案--------------------
“select sum(CurrInve) as suminve from CityDevo where City_id=@City_id ”
--------------------
不知道你这里是贴出一部分代码还是仅是某一部分代码
看了下你的代码,你是求各类City_id的CurrInve累加之和吧?
如果用2层游标那么复杂呢?直接一句语句就可以处理了啊


“如何把sum(CurrInve)输入出来?”
-------------------------------
你这里面是显示一个结果集的意思吧?(有点看不明白你的意图)
如果是这样,那在不改动你上面程序的情况下
建立一个临时表变量处理即可:
declare @CD_id varchar(20),@City_id varchar(10),@CurrDevo float,@CurrInve float ,@date datetime 
declare @N int 
declare @tb table(city_id varchar(10),total_CurrDevo float)
set @N=0 
set @date=getdate() 

declare cur cursor for
select CD_id,City_id,CurrDevo,CurrInve from CityDevo 
open cur 
fetch next from cur into @CD_id,@City_id,@CurrDevo,@CurrInve 

while @@fetch_status=0 
begin 

/*select @CD_id,@City_id,@CurrDevo,@CurrInve*/ 
declare cur1 cursor for 
select sum(CurrInve) as suminve from CityDevo where City_id=@City_id 
open cur1 
fetch next from cur1 into @CurrInve 
while @@fetch_status=0 
begin 

*************** 
insert into @tb values(@City_id,@CurrInve )

fetch next from cur1 into @CurrInve 
end 
close cur1 
deallocate cur1 


print @CurrInve 


set @N=@N+1

fetch next from cur into @CD_id,@City_id,@CurrDevo,@CurrInve 

end 
close cur 
deallocate cur 
select * from @tb
GO