我的作业集(SQL)

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. 人员情况表(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)+''

 今天我做作业的两道题不知有什么不对的地方,发上来,希望大鸟指点呀!好好学习一下,呵呵。

原文地址:https://www.cnblogs.com/cube/p/1597465.html