نمایش نتایج 1 تا 6 از 6

نام تاپیک: recurcive in sql

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    بجنورد
    پست
    188

    Question recurcive in sql

    با سلام
    من براي نوشتن يه sp نياز به مانده اعتبارات ماه قبل دارم (يعني براي مرداد نياز به تير دارم، براي تير نياز به مانده اعتبارات ماه خرداد دارم و ...).
    چه شكلي مي تونم همچين چيزي بنويسم .؟
    البته اين و براي يه ماه نوشتم اما چه شكلي ماه هاي قبلشو محاسبه كنه ؟ نمي دونم

    CREATE PROCEDURE test
    @date nvarchar(10),
    @et_unit nvarchar(50)
    AS
    SELECT dbo.Etebarat.Et_Id, dbo.Etebarat.Et_Name,dbo.Etebarat.Et_Price,
    Sum(Case When (dbo.Orderr.Dar_Date like @date+'%' ) Then dbo.Order_Detial.od_P_F Else 0 End ) AS curr_month
    FROM dbo.Orderr INNER JOIN
    dbo.Order_Detial ON dbo.Orderr.Dar_Id = dbo.Order_Detial.Od_Id RIGHT OUTER JOIN
    dbo.Etebarat ON dbo.Order_Detial.Od_P_C = dbo.Etebarat.Et_Id
    WHERE ((dbo.Etebarat.Et_Unit like @et_unit + '%'))
    GROUP BY dbo.Etebarat.Et_Id, dbo.Etebarat.Et_Name, dbo.Etebarat.Et_Price
    GO

    ممنون ميشم اساتيد راهنمايي كنند

  2. #2
    کاربر دائمی
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    بجنورد
    پست
    188

    نقل قول: recurcive in sql

    آيا ميشه يه تابع بازگشتي تو sql نوشت ؟
    اگه ميشه با مثال
    ممنون

  3. #3
    کاربر جدید
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    پست
    28

    نقل قول: recurcive in sql

    با سلام خدمت شما
    از توابع بازگشتي در function ها مي تونيد استفاده كنيد و نه در procrdure ها!!!!
    به اين صورت كه بايد يك شرط خروج براي تابع بازگشتي در نظر بگيريد و بعد از آن
     return dbo.functionname(input parameter name)
    return( output parameter)


    كه كد دوم return موجود در بدنه function مي باشد

  4. #4
    کاربر جدید
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    پست
    28

    Wink نقل قول: 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 اجرا مي شود

  5. #5
    کاربر دائمی
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    بجنورد
    پست
    188

    نقل قول: recurcive in sql

    سلام حالا اگه بخوام اين تابع يه table با دوستون id,price برگردونه و در هر بازگشت مقدار فيلد price رو با بعديش جمع كنه چه شكلي ميشه نوشت
    ممنون!
    در آخرين بازگشت مي خوام price مجموع كل قبليها باشه!

  6. #6
    کاربر دائمی
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    بجنورد
    پست
    188

    نقل قول: recurcive in sql

    فكر كردم شايد راه حل ديگه اي وجود داشته باشه
    ببينيد دوستان
    من يك گزارش مي خوام كه اعتبارات و هزينه هارو بر مي گردونه براي ماه n حالا
    اعتبارات ماه n = اعتبارات ماه n -1 + اعتبارت ماه n
    اعتبارات ماه n-1 = اعتبارات ماه n -2 +اعتبارات ماه n -1
    .
    .
    .
    اعتبارات ماه 2 = اعتبارات ماه 1 + اعتبارات ماه 2
    اعتبارات ماه 1= اعتبارت ماه 1
    به اين صورت.
    چه راه حلي پيشنهاد ميديد
    با تشكر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •