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

نام تاپیک: اشکال در دستور while

  1. #1

    اشکال در دستور while

    سلام
    من یک جدول دارم که شامل فیلدهای سال و ترم و شاخصه حالا میخوام وقتی یک ترم با یک سال مشخص رو بهش دادم اگر وجود نداشت یک ترم برگرده عقب تا زمانیکه مقداری برای شاخص وجود داشته باشه ..این دستور رو نوشتم ولی مشکل داره :

    WHILE
    ((select AdjustmentSeasonFactor From TbSeasonFactor WHERE dbo.TbSeasonFactor.Id_Year =@Id_Year AND dbo.TbSeasonFactor.Id_Term = @Id_Term)isnull)
    Begin
    IF
    (@Id_Term=1)
    BEGIN
    SELECT AdjustmentSeasonFactor
    From TbSeasonFactor
    WHERE dbo.TbSeasonFactor.Id_Year =@Id_Year-1 AND dbo.TbSeasonFactor.Id_Term = 4
    End
    Else
    Begin
    SELECT AdjustmentSeasonFactor
    From TbSeasonFactor
    WHERE dbo.TbSeasonFactor.Id_Year =@Id_Year AND dbo.TbSeasonFactor.Id_Term = @Id_Term-1
    End
    End


    اگر راهنمایی کنید ممنون میشم.
    آخرین ویرایش به وسیله ...azade : سه شنبه 13 دی 1390 در 10:13 صبح

  2. #2

    نقل قول: اشکال در دستور while

    شما می توانید از دستور cursor استفاده نمایید

  3. #3

    نقل قول: اشکال در دستور while

    میشه راهنمایی کنید من نمیدونم چطور باید کرسر رو بنویسم.
    از دوستان کسی دیگه نمیتونه راهنمایی کنه چون واقعا به حلش نیاز دارم.

  4. #4

    نقل قول: اشکال در دستور while

    سلام

    به نظرم خیلی دارید با الگوریتم های برنامه نویسی به SQL نگاه می کنید ... شاید احتیاجی به حلقه نباشد


    Select
    top 1 ID From T1 where [Date]=@date orderby [term] desc


    با این کد شما ID بزرگترین Term مربوط به یه تاریخ رو به دست می آرید

  5. #5

    نقل قول: اشکال در دستور while

    ممنون دوست عزیز جوابتون بهم ایده داد اینم دستور درستش:
    SELECT TOP (1) PERCENT AdjustmentSeasonFactor, Id_Year, Id_Term
    FROM dbo.TbSeasonFactor
    WHERE (Id_Year <= @Id_Year) AND (Id_Term <= @Id_Term)
    ORDER BY Id_Year DESC, Id_Term DESC

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

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