mohammadyaser
دوشنبه 08 خرداد 1391, 13:44 عصر
با سلام من برای کار با دیتا بیسم از کرسر استفاده می کردم البته بعضی مواقع شرایطی پیش می امد که چند تا کرسر تو در تو تعریف می کردم که این ا صلا بهینه نیست .برای رفع این مشکل از از حلقه های while استفاده کردم . می خواستم بدونم روشی که استفاده کردم بهتر از کرسر است یا نه و ایا روشهای دیگری هم وجود دارد یا نه؟
اینم کدمSelect TOP 1 @Curr_Shift=ASH0101,@Shift_Unic=ASH0904,@Curr_Day= AIO0201,@Curr_radif=AIO0101,@_Day=AIO0201,@Out_Day =AIO0202,@_Year=AMN0101,@_Mon=AMN0102,@IN_Per=dbo. Time2Val(AIO0501,AIO0502),@Out_Per=dbo.Time2Val(AI O0503,AIO0504),@INDEX=AIO0901 from InOut Where APR0901=@Curr_Per and amn0101=@year and amn0102=@mon Order By AIO0201
WHILE @INDEX is not null
Begin--begin 1
دستورات داخل حلقه
Select TOP 1 @Curr_Shift=ASH0101,@Shift_Unic=ASH0904,@Curr_Day= AIO0201,@Curr_radif=AIO0101,@_Day=AIO0201,@Out_Day =AIO0202,@_Radif=AIO0101,@_Year=AMN0101,@_Mon=AMN0 102,@IN_Per=dbo.Time2Val(AIO0501,AIO0502),@Out_Per =dbo.Time2Val(AIO0503,AIO0504),@INDEX=AIO0901 from InOut Where APR0901=@Curr_Per and amn0101=@year and amn0102=@mon AND @INDEX<AIO0901 Order By AIO0201
end --end 1
اینم کدمSelect TOP 1 @Curr_Shift=ASH0101,@Shift_Unic=ASH0904,@Curr_Day= AIO0201,@Curr_radif=AIO0101,@_Day=AIO0201,@Out_Day =AIO0202,@_Year=AMN0101,@_Mon=AMN0102,@IN_Per=dbo. Time2Val(AIO0501,AIO0502),@Out_Per=dbo.Time2Val(AI O0503,AIO0504),@INDEX=AIO0901 from InOut Where APR0901=@Curr_Per and amn0101=@year and amn0102=@mon Order By AIO0201
WHILE @INDEX is not null
Begin--begin 1
دستورات داخل حلقه
Select TOP 1 @Curr_Shift=ASH0101,@Shift_Unic=ASH0904,@Curr_Day= AIO0201,@Curr_radif=AIO0101,@_Day=AIO0201,@Out_Day =AIO0202,@_Radif=AIO0101,@_Year=AMN0101,@_Mon=AMN0 102,@IN_Per=dbo.Time2Val(AIO0501,AIO0502),@Out_Per =dbo.Time2Val(AIO0503,AIO0504),@INDEX=AIO0901 from InOut Where APR0901=@Curr_Per and amn0101=@year and amn0102=@mon AND @INDEX<AIO0901 Order By AIO0201
end --end 1