L
lzm
Unregistered / Unconfirmed
GUEST, unregistred user!
有一表如下
工號 姓名 時間 序號
001 abc 08:00 1
001 abc 12:01 2
001 abc 13:28 3
001 abc 17:40 4
002 def 07:30 1
002 def 22:59 2
記錄人員當天進出的數據。 序號欄需要在SQL存儲過程中產生。這個序號必須存在﹐不要告訴我 前三個字段相加也可識別一條記錄。
在我的本本(P41.8, DDR256,30g 4500 WIN2K SQL2K)用游標產生序號
2萬筆資料約8分鐘﹐ 相同配置台式機約7分鐘(IBM40G 7200).
有哪位高手來挑戰有更高效的SQL寫法?
我寫的游標如下﹕
-----------------------
--ygbh 工號 timea 時間
declare cur_skjl cursor for
select ygbh,timea from skjl order by ygbh,timea
open cur_skjl
fetch next from cur_skjl into @ygbh,@timea
while (@@fetch_status=0)
begin
Update skjl set xh=(select count(*) from kqskjl where ygbh=@ygbh and timea<=@timea)
where ygbh=@ygbh and timea=@timea
fetch next from cur_kqskjl into @ygbh,@timea
end
Close cur_skjl
deallocate cur_skjl
-----------------------------
工號 姓名 時間 序號
001 abc 08:00 1
001 abc 12:01 2
001 abc 13:28 3
001 abc 17:40 4
002 def 07:30 1
002 def 22:59 2
記錄人員當天進出的數據。 序號欄需要在SQL存儲過程中產生。這個序號必須存在﹐不要告訴我 前三個字段相加也可識別一條記錄。
在我的本本(P41.8, DDR256,30g 4500 WIN2K SQL2K)用游標產生序號
2萬筆資料約8分鐘﹐ 相同配置台式機約7分鐘(IBM40G 7200).
有哪位高手來挑戰有更高效的SQL寫法?
我寫的游標如下﹕
-----------------------
--ygbh 工號 timea 時間
declare cur_skjl cursor for
select ygbh,timea from skjl order by ygbh,timea
open cur_skjl
fetch next from cur_skjl into @ygbh,@timea
while (@@fetch_status=0)
begin
Update skjl set xh=(select count(*) from kqskjl where ygbh=@ygbh and timea<=@timea)
where ygbh=@ygbh and timea=@timea
fetch next from cur_kqskjl into @ygbh,@timea
end
Close cur_skjl
deallocate cur_skjl
-----------------------------