1.请用SQL语句实现:计算一个1-100之间所有不能被3整除的整数, 和正好大于或等于2000的那个整数.
1 DeCLARE @i int
2 DeCLARE @Number int
3 set @i=0
4 set @Number=0
5
6 WHILE(99>=@i)
7 BEGIN
8 set @i=@i+1
9 IF(@i%3!=0)
10 BEGIN
11 --print convert(Varchar(20),@i) +'*'
12 set @Number=@Number+@i
13 IF(@Number>=2000)
14 BEGIN
15 --print @Number
16 print '1-100之间所有不能被3整除的整数,和正好大于或等于2000的那个整数:'+convert(Varchar(20),@i)
17 END
18 END
19 END
2 DeCLARE @Number int
3 set @i=0
4 set @Number=0
5
6 WHILE(99>=@i)
7 BEGIN
8 set @i=@i+1
9 IF(@i%3!=0)
10 BEGIN
11 --print convert(Varchar(20),@i) +'*'
12 set @Number=@Number+@i
13 IF(@Number>=2000)
14 BEGIN
15 --print @Number
16 print '1-100之间所有不能被3整除的整数,和正好大于或等于2000的那个整数:'+convert(Varchar(20),@i)
17 END
18 END
19 END
2. 人员情况表(emp)中的字段包括员工号(id)、姓名(name)、年龄(age)、学历(wh),其中学历包括4种情况(本科以上、大专、高中、初中以下),现在要统计出表中学历为本科以上、大专、高中、初中以下,各有多少人,平均年龄、占总人数的百分比。
set nocount on
select * from emp left join wh on emp.wh=wh.whid
Declare @empsum float --总人数
Declare @empage float --平均年龄
Declare @emp float --统计人数变量
Declare @eis float--占总人数比例
select @empsum=count(*) from emp
select @empage=avg(age) from emp
set @emp=(select count(*) from emp left join wh on emp.wh=wh.whid where wh.whid=1)
set @eis=(@emp/@empsum)*100
print '本科以上:'+convert(varchar(10),@emp)+'人.|'+'占总人数比例:'+convert(varchar(10),@eis)+'%'
set @emp=(select count(*) from emp left join wh on emp.wh=wh.whid where wh.whid=2)
set @eis=(@emp/@empsum)*100
print '大 专:'+convert(varchar(10),@emp)+'人.|'+'占总人数比例:'+convert(varchar(10),@eis)+'%'
set @emp=(select count(*) from emp left join wh on emp.wh=wh.whid where wh.whid=3)
set @eis=(@emp/@empsum)*100
print '高 中:'+convert(varchar(10),@emp)+'人.|'+'占总人数比例:'+convert(varchar(10),@eis)+'%'
set @emp=(select count(*) from emp left join wh on emp.wh=wh.whid where wh.whid=4)
set @eis=(@emp/@empsum)*100
print '初中以下:'+convert(varchar(10),@emp)+'人.|'+'占总人数比例:'+convert(varchar(10),@eis)+'%'
print '总人数 :'+convert(varchar(20),@empsum)+'人'
print '总人数平均年龄'+convert(varchar(20),@empage)+'岁'
select * from emp left join wh on emp.wh=wh.whid
Declare @empsum float --总人数
Declare @empage float --平均年龄
Declare @emp float --统计人数变量
Declare @eis float--占总人数比例
select @empsum=count(*) from emp
select @empage=avg(age) from emp
set @emp=(select count(*) from emp left join wh on emp.wh=wh.whid where wh.whid=1)
set @eis=(@emp/@empsum)*100
print '本科以上:'+convert(varchar(10),@emp)+'人.|'+'占总人数比例:'+convert(varchar(10),@eis)+'%'
set @emp=(select count(*) from emp left join wh on emp.wh=wh.whid where wh.whid=2)
set @eis=(@emp/@empsum)*100
print '大 专:'+convert(varchar(10),@emp)+'人.|'+'占总人数比例:'+convert(varchar(10),@eis)+'%'
set @emp=(select count(*) from emp left join wh on emp.wh=wh.whid where wh.whid=3)
set @eis=(@emp/@empsum)*100
print '高 中:'+convert(varchar(10),@emp)+'人.|'+'占总人数比例:'+convert(varchar(10),@eis)+'%'
set @emp=(select count(*) from emp left join wh on emp.wh=wh.whid where wh.whid=4)
set @eis=(@emp/@empsum)*100
print '初中以下:'+convert(varchar(10),@emp)+'人.|'+'占总人数比例:'+convert(varchar(10),@eis)+'%'
print '总人数 :'+convert(varchar(20),@empsum)+'人'
print '总人数平均年龄'+convert(varchar(20),@empage)+'岁'
今天我做作业的两道题不知有什么不对的地方,发上来,希望大鸟指点呀!好好学习一下,呵呵。