成绩表
create table sscore
(
sno varchar(13),
spf varchar(20),
snm varchar(20),
sbt date,
stm int,
smt int,
sen int,
sdb int
)
alter table sscore add scc int
alter table sscore add stl int
alter table sscore drop column sbt
declare @ssno varchar(13),@sspf varchar(20),@ssnm varchar(20),@sstm int,@ssmt int,@ssen int,@ssdb int,@sscc int,@sstl int
declare @i int
set @i=1
while @i<=10000
begin
set @ssno='AB'+right('0000'+ltrim(str(@i,5)),5)
set @sspf='信息管理'
set @ssnm='nm'+char(rand()*5+65)
set @sstm=rand()*7+1
set @ssmt=rand()*50+50
set @ssen=rand()*50+50
set @ssdb=rand()*50+50
set @sscc=rand()*50+50
set @sstl=@ssmt+@ssen+@ssdb+@sscc
insert into sscore (sno,spf,snm,stm,smt,sen,sdb,scc,stl) values (@ssno,@sspf,@ssnm,@sstm,@ssmt,@ssen,@ssdb,@sscc,@sstl)
set @i=@i+1
end
select dense_rank() over (order by stl desc) as smc,* from sscore
create view view_s as select sno,snm,stl from sscore
declare cursor_s cursor for select snm,stl from sscore
declare @nm varchar(20),@tl int,@i int
set @i=1
open cursor_s
while @i<=10000
begin
fetch from cursor_s into @nm,@tl
print @nm+' '+str(@tl)
set @i=@i+1
end
close cursor_s
deallocate cursor_s
select * into s_no_pass from sscore where smt<60 or sen<60 or sdb<60 or scc<60
select sno,spf,snm,stm,smt into s_smt from s_no_pass where smt<60
select sno,spf,snm,stm,sen into s_sen from s_no_pass where sen<60
select sno,spf,snm,stm,sdb into s_sdb from s_no_pass where sdb<60
select sno,spf,snm,stm,scc into s_scc from s_no_pass where scc<60
工资表
create table stuff_salary
(
stuff_no varchar(20),
stuff_pt varchar(20),
stuff_nm varchar(20),
stuff_py int,
stuff_gp int,
stuff_jp int,
stuff_op int,
stuff_yf int,
stuff_kq int,
stuff_sf int
)
alter table stuff_salary add stuff_ks int
declare @no varchar(20),@pt varchar(20),@nm varchar(20),@py int,@gp int
declare @jp int,@op int,@yf int,@kq int,@sf int,@ks int
declare @i int
set @i=1
while @i<=1000
begin
set @no='AB'+right('0000'+ltrim(str(@i,5)),5)
set @pt='部门'+char(rand()*5+65)
set @nm='nm'+char(rand()*5+65)
set @py=rand()*1001+2000
set @gp=rand()*1001+3000
set @jp=rand()*1001+1500
set @op=1800
set @kq=200
set @ks=rand()*1000+1
set @yf=@py+@gp+@jp+@op
set @sf=@yf-@kq-@ks
insert into stuff_salary (stuff_no,stuff_pt,stuff_nm,stuff_py,stuff_gp,stuff_jp,stuff_op,stuff_yf,stuff_kq,stuff_sf,stuff_ks) values (@no,@pt,@nm,@py,@gp,@jp,@op,@yf,@kq,@sf,@ks)
set @i=@i+1
end
create view view_ss as select stuff_no,stuff_pt,stuff_nm from stuff_salary
declare cursor_ss cursor for select stuff_pt,stuff_nm from view_ss
declare @pt varchar(20),@nm varchar(20),@i int
open cursor_ss
set @i=1
while @i<=1000
begin
fetch from cursor_ss into @pt,@nm
print @pt+' '+@nm
set @i=@i+1
end
close cursor_ss
deallocate cursor_ss
select stuff_nm as 最高应发工资员工姓名 from stuff_salary where stuff_yf=(select max(stuff_yf) from stuff_salary)
select stuff_nm as 最低应发工资员工姓名 from stuff_salary where stuff_yf=(select min(stuff_yf) from stuff_salary)