我跟我同事 他寫cursor 我寫while loop,
執行速度其實差不多。
但while loop比較短而已。
以下繼續
本文參考 iT邦幫忙
重點有兩個
1.宣告temp table,塞資料時要有row_number
2.用while 時,將row_number取出,設定最大、最小值
declare @t table
( RowNo int, [VCH_DT] [smalldatetime] NOT NULL)
declare @max bigint
declare @min bigint
declare @key_vch_dt smalldatetime
insert into @t
select ROW_NUMBER() over(order by CONVERT(varchar(100),vch_dt, 111)) as RowNo,
vch_dt from aaa
--select * from @t
select @max=max(RowNo),@min=min(RowNo) from @t
while(@min<=@max)
begin
print @min
print @max
select @key_vch_dt=VCH_DT from @t where RowNo=@min
select @sum= sum(dbo.nprc_dt(item_no,@key_vch_dt)*dbo.nitem_qty_dt(item_no,@key_vch_dt))
from bbb
update @t set [amt_max]= @sum where RowNo=@min
set @min+=1
end
select * from @t
0 意見:
張貼留言