نقل قول: recurcive in sql
آيا ميشه يه تابع بازگشتي تو sql نوشت ؟
اگه ميشه با مثال
ممنون
نقل قول: recurcive in sql
با سلام خدمت شما
از توابع بازگشتي در function ها مي تونيد استفاده كنيد و نه در procrdure ها!!!!
به اين صورت كه بايد يك شرط خروج براي تابع بازگشتي در نظر بگيريد و بعد از آن
return dbo.functionname(input parameter name)
return( output parameter)
كه كد دوم return موجود در بدنه function مي باشد
نقل قول: recurcive in sql
اينم يك مثال از يك تابع بازگشتي
createfunction dbo.ftreepath(@id int,@str varchar(100))
returnsvarchar(100)
as
begin
declare @p int
declare @val char
select @p=parentid from treepath where @id=id
select @val=val from treepath where @id=id
set @str=@val+'/'+@str
if(@p<>0)
return dbo.ftreepath(@p,@str)
return(@str)
end
اين تابع روي جدولtreeview با فيلدهاي id,parentid,val اجرا مي شود
:لبخندساده:
نقل قول: recurcive in sql
سلام حالا اگه بخوام اين تابع يه table با دوستون id,price برگردونه و در هر بازگشت مقدار فيلد price رو با بعديش جمع كنه چه شكلي ميشه نوشت
ممنون!
در آخرين بازگشت مي خوام price مجموع كل قبليها باشه!
نقل قول: recurcive in sql
فكر كردم شايد راه حل ديگه اي وجود داشته باشه
ببينيد دوستان
من يك گزارش مي خوام كه اعتبارات و هزينه هارو بر مي گردونه براي ماه n حالا
اعتبارات ماه n = اعتبارات ماه n -1 + اعتبارت ماه n
اعتبارات ماه n-1 = اعتبارات ماه n -2 +اعتبارات ماه n -1
.
.
.
اعتبارات ماه 2 = اعتبارات ماه 1 + اعتبارات ماه 2
اعتبارات ماه 1= اعتبارت ماه 1
به اين صورت.
چه راه حلي پيشنهاد ميديد
با تشكر