2013-12-20 24 views
0

我有一个函数,名称为fnc_FiderSumOfAboneSayisi可与参数@prm_fiderid被发送的整数值。所以我有一个名为的表格,其中有ID列的fider_data。 现在我想要将fider_data ID列值作为参数发送给我的fnc_FiderSumOfAboneSayisi函数作为循环。以发送参数存储过程在循环

我该怎么做?

----------功能

ALTER功能fnc_FiderSumOfAboneSayisi @prm_fiderid为INT

返回int

开始

声明@ parent int = @prm_fiderid;

declare @SUM int;

其中q如(

select * from fider_data where ParentId = @parent 

union all 

select lc.* from q 

join fider_data lc on lc.ParentId = q.ID) 

SELECT @ SUM =(SELECT SUM(卅一)FROM q其中ID < 33000)返回@SUM

---- ------ TABLE fider_data

ADI ID

TM 1 1

TM 2 2

TM 3 3

TM 4 4

TM 5 5

TM 6 6

TM 7 7

TM 8 8

TM 9 9

回答

0
DECLARE @id INT 

SET @id = (SELECT TOP 1.ID FROM fider_data ORDER BY ID ASC) 



WHILE @id IS NOT NULL 

BEGIN 
    SELECT fnc_FiderSumOfAboneSayisi @prm_fiderid = @id 

    SET @id = (SELECT TOP 1.ID FROM fider_data WHERE ID > @id ORDER BY ID ASC) 

END 
+0

好吧非常感谢你我的朋友 –