注册 登录
编程论坛 SQL Server论坛

用了while循环对记录进行操作,但怎么用eof写判断条件啊?

agilent68 发布于 2006-12-08 14:08, 1657 次点击
declare @i float(8),@j float(8),@d datetime,@count int,@ot float(8)
set @d='2005-1-1'
set @count=1
while @count<366 --怎么用eof写判断条件。
begin
select @i=平均数 from #s
where 销售日期=@d
update sales_1
set 移动平均数=@i
where 销售日期=@d+3
select @j=销售量 from SALES
where 销售日期=@d+3
set @ot=@j/@i
update sales_1
set 季节性系数=@ot
where 销售日期=@d+3
set @d=@d+1
set @count=@count+1
end
12 回复
#2
angeloc2006-12-08 16:32
先select出你要操作的数据,再对select出来的数据循环操作,这和EOF没什么关系
#3
agilent682006-12-08 17:03
我现在就是想作一个数据库底部的判断.EOF.上面只是个例子,要解决别的问题
#4
angeloc2006-12-08 17:12
你在库中EOF什么?你说说你想做什么吧
#5
agilent682006-12-08 20:35
急救!!!
大家有知道的帮帮我.
(我的意思是作一个判断看是否到了表的底部)
#6
棉花糖ONE2006-12-08 20:40
sql里面好象没有eof这东西吧,你用临时表加一个自增的字段也能判断是否到底部啊
#7
agilent682006-12-08 20:48

是的我知道没有EOF,我就想知道有没有什么方法判断

#8
angeloc2006-12-08 21:12
你在库中哪有什么表的底部啊,你看来概念有点模糊!
#9
agilent682006-12-08 21:18

我的意思要判断当前记录是否是最后一条记录(LAST)

#10
angeloc2006-12-08 21:26
以下是引用agilent68在2006-12-8 14:08:16的发言:
declare @i float(8),@j float(8),@d datetime,@count int,@ot float(8)
set @d='2005-1-1'
set @count=1
while @count<366 --怎么用eof写判断条件。
begin
select @i=平均数 from #s
where 销售日期=@d
update sales_1
set 移动平均数=@i
where 销售日期=@d+3
select @j=销售量 from SALES
where 销售日期=@d+3
set @ot=@j/@i
update sales_1
set 季节性系数=@ot
where 销售日期=@d+3
set @d=@d+1
set @count=@count+1
end

你上面这个是什么你知道么?它和记录根本没关系。
只有你在程序中连接数据库做查询返回结果集的时候才有最后一条记录的概念。

#11
agilent682006-12-09 09:04

我是下面这个意思:

while (@@fetch_status=0)
begin
fetch next from jyjl_cur into @jyr1
print @jyr1
if (  )----怎么用eof写判断条件(判断是否到了表的尾部)。? ? ?
delete from jyjl where current of jyjl_cur

end

#12
agilent682006-12-09 09:20
问题已经解决了if @@fetch_status <>0
谢谢大家了

#13
angeloc2006-12-09 11:29

你如果早说是用游标大家就能帮你了,这个和你的问题可不太一样。希望下次你能把问题阐述清楚。

1