这是我的解答,经过运行能正确的获得结果—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————/*create table book20(
编号 int primary key,
会员id int,
卡号 int,
姓名 nvarchar(50),
图书编号 nvarchar(50),
书名 nvarchar(50),
借阅时间 smalldatetime,
归还时间 smalldatetime,
是否续借 bit,
续借至 smalldatetime,
是否归还 bit,
是否超期未还 bit
)
go*/
declare @借阅次数 int, /*声明变量*/
@图书编号 nvarchar(50),
@max int,
@min intdeclare cur_book cursor /*声明游标*/
for
select 图书编号,count(借阅时间)
from 借阅信息
where datepart(yy,借阅信息.借阅时间)='2003'
group by 图书编号open cur_book /*打开游标*/fetch next from cur_book /*初始化变量--@max统计最大借阅次数,@min统计最小借阅次数*/
into @图书编号,@借阅次数select @max=max(借阅次数)
from(select 图书编号,count(借阅时间) as 借阅次数
from 借阅信息
where datepart(yy,借阅信息.借阅时间)='2003'
group by 图书编号)tttselect @min=min(借阅次数)
from(select 图书编号,count(借阅时间) as 借阅次数
from 借阅信息
where datepart(yy,借阅信息.借阅时间)='2003'
group by 图书编号)sss
while @@fetch_status=0 /*使用游标*/
begin
if @借阅次数=@max /*最畅销书在库存表中库存量加十*/
begin
update 书籍基本信息
set 库存量=库存量+10
where 图书编号=@图书编号
endif @借阅次数=@min /*最不畅销书从借阅信息表去除*/
begin
delete
from 借阅信息
where 图书编号=@图书编号
end fetch next from cur_book
into @图书编号,@借阅次数
endclose cur_book /*关闭游标*/deallocate cur_book /*释放游标*/goselect * into book2003 /*select into 子句直接将更新后的借阅信息表插入book2003表*/
from 借阅信息
where datepart(yy,借阅信息.借阅时间)='2003'
编号 int primary key,
会员id int,
卡号 int,
姓名 nvarchar(50),
图书编号 nvarchar(50),
书名 nvarchar(50),
借阅时间 smalldatetime,
归还时间 smalldatetime,
是否续借 bit,
续借至 smalldatetime,
是否归还 bit,
是否超期未还 bit
)
go*/
declare @借阅次数 int, /*声明变量*/
@图书编号 nvarchar(50),
@max int,
@min intdeclare cur_book cursor /*声明游标*/
for
select 图书编号,count(借阅时间)
from 借阅信息
where datepart(yy,借阅信息.借阅时间)='2003'
group by 图书编号open cur_book /*打开游标*/fetch next from cur_book /*初始化变量--@max统计最大借阅次数,@min统计最小借阅次数*/
into @图书编号,@借阅次数select @max=max(借阅次数)
from(select 图书编号,count(借阅时间) as 借阅次数
from 借阅信息
where datepart(yy,借阅信息.借阅时间)='2003'
group by 图书编号)tttselect @min=min(借阅次数)
from(select 图书编号,count(借阅时间) as 借阅次数
from 借阅信息
where datepart(yy,借阅信息.借阅时间)='2003'
group by 图书编号)sss
while @@fetch_status=0 /*使用游标*/
begin
if @借阅次数=@max /*最畅销书在库存表中库存量加十*/
begin
update 书籍基本信息
set 库存量=库存量+10
where 图书编号=@图书编号
endif @借阅次数=@min /*最不畅销书从借阅信息表去除*/
begin
delete
from 借阅信息
where 图书编号=@图书编号
end fetch next from cur_book
into @图书编号,@借阅次数
endclose cur_book /*关闭游标*/deallocate cur_book /*释放游标*/goselect * into book2003 /*select into 子句直接将更新后的借阅信息表插入book2003表*/
from 借阅信息
where datepart(yy,借阅信息.借阅时间)='2003'
解决方案 »
- (在线等待)构造动态更新某个表的大字段SQL
- 各位帮忙一下 已经有好几天了,我急死人了, zjcxc 等大哥帮忙入
- alter table 如何插入一个新字段到一个表中,新字段,不一定在最后一个列
- 关于一个去除0的问题
- SQL SERVER2000连接JAVA慢的问题
- 请问安装sybase client后,为什么在ODBC里面没有SYBASE的ODBC驱动程序出现,装SYBASE CLIENT后可不可以用ODBC方式或ADO方式放问SYBASE数
- sqlsever 2005 安全问题请教
- 高手请进,对于大型的视频文件用SERVER怎么管理?高分
- 请教高手"JSP中如何使用ACCESS以及SQL SERVER?"可否各举一个例子说明(详细代码哦),谢谢!!!
- 这sql如何写啊?谢谢
- 难题!!!!难题!!!!!望高手解答
- 如何奖列转成行显示!在线等!
当然,如果你有更好的解法,请不吝赐教。在技术板块里得分太难了,
特别是象我们这样喜欢提问的菜鸟,
为了一个问题可能要集5-10天的分,
不过这是值得的,
虽然我的可用分又清零了,
我将在5-10天后继续加帖和分帖,
让你在本版面的足迹展示你的智慧之光吧。