vfp作业,利用SELECT-SQL语句建立查询
*利用SELECT-SQL语句建立查询15.基于xs表查询所有1990年后出生同学的学号、姓名和出生日期,要求输出字段包括xh、xm、xb、csrq、jg和bjbh,结果...
*利用SELECT-SQL语句建立查询
15.基于xs表查询所有1990年后出生同学的学号、姓名和出生日期,要求输出字段包括xh、xm、xb、csrq、jg和bjbh,结果按出生日期排序。
16.基于xs表查询张姓和王姓同学的姓名和籍贯,要求输出字段包括xm和jg,不能有重复内容,结果按籍贯排序,相同时再按姓名排序。
17.基于CJ表查询每门课程的最高分、最低分、平均分、总分和选课人数,要求输出字段包括kcdm、最高分、最低分、平均分、总分和选课人数,结果按平均分降序排序。
18.基于xs表统计男女同学的人数。要求输出:性别和人数(字段名依次分别为xb和rs),且查询结果按性别降序排列,性别相同时按人数降序排列。
19.基于XS表和CJ表,查询选课的学生名单,要求输出字段为:xh和xm。
20.基于XS表和CJ表,查询班级编号为“050202”未选课的学生名单。要求输出字段为:xh、xm,查询结果按学号升序排序。(提示:可采用左联接)
21.基于XS表和CJ表,查询每位学生参加考试的课程门数、平均成绩和不及格课程数(成绩小于60者不及格)。要求输出字段为XH、XM、选课门数、平均成绩、不及格课程数,查询结果仅显示平均成绩大于或等于75的记录。
22.基于KC表和CJ表,查询每门课程参加考试的人数、平均成绩和不及格人数(成绩小于60者不及格)。要求:输出字段依次为KCDM、KCMC、人数、平均成绩、不及格人数,查询结果按平均成绩降序排序,查询去向为表ABC。
23.基于KC表和CJ表查询所有不能毕业的学生列表。要求查询输出字段为:学号、总学分,查询结果按总学分降序排序。注意:若成绩不低于60分学生可以取得对应课程的学分,总学分大于或等于20的学生可以毕业。
24.基于XS表、CJ表和KC表,查询每位学生取得学分的课程门数和总学分数(成绩大于或等于60时才能取得学分)。要求:输出字段依次为XH、XM、课程门数、总学分,查询结果按总学分降序排序,输出总学分排在前10位同学。
25.基于kc表和cj表,找出每门课程的kcdm、kcmc、选课人数、总成绩、平均分和最低分、最高分,结果先按总成绩降序排序,再按课程代码升序排序,把结果保存到kccj表文件中。
26.基于xs表和cj表,找出学生的xh、xm以及总成绩,要求输出总分前5名学习情况。
27.基于xs表和cj表,找出每个学生的xh、xm、总成绩、平均成绩以及最低分,要求输出总分不低于480分,最低分不低于60分的所有学生学习情况,最终按学生xh进行排序。
28. 已知教师表(JS)含有工号(gh,C)、院系专业代码(yxzydm,C)等字段;自由表图书借阅表(JYB)含有读者号(dzh,C)、分类号(flh,C)、借阅日期(jyrq,D)、还书日期(hsrq,D)等字段,教师的读者号与工号相同。要求在JXGL项目创建查询jsjybchaxun:
基于JS表和JYB表查询各院系专业借书情况。要求:查询输出字段为yxzydm、借书本数、
最大借阅天数;查询结果按最大借阅天数降序排序;输出去向为临时表TEMP。
注:借阅天数为hsrq与jyrq之差,未还的图书按当前系统日期计算借阅天数。 展开
15.基于xs表查询所有1990年后出生同学的学号、姓名和出生日期,要求输出字段包括xh、xm、xb、csrq、jg和bjbh,结果按出生日期排序。
16.基于xs表查询张姓和王姓同学的姓名和籍贯,要求输出字段包括xm和jg,不能有重复内容,结果按籍贯排序,相同时再按姓名排序。
17.基于CJ表查询每门课程的最高分、最低分、平均分、总分和选课人数,要求输出字段包括kcdm、最高分、最低分、平均分、总分和选课人数,结果按平均分降序排序。
18.基于xs表统计男女同学的人数。要求输出:性别和人数(字段名依次分别为xb和rs),且查询结果按性别降序排列,性别相同时按人数降序排列。
19.基于XS表和CJ表,查询选课的学生名单,要求输出字段为:xh和xm。
20.基于XS表和CJ表,查询班级编号为“050202”未选课的学生名单。要求输出字段为:xh、xm,查询结果按学号升序排序。(提示:可采用左联接)
21.基于XS表和CJ表,查询每位学生参加考试的课程门数、平均成绩和不及格课程数(成绩小于60者不及格)。要求输出字段为XH、XM、选课门数、平均成绩、不及格课程数,查询结果仅显示平均成绩大于或等于75的记录。
22.基于KC表和CJ表,查询每门课程参加考试的人数、平均成绩和不及格人数(成绩小于60者不及格)。要求:输出字段依次为KCDM、KCMC、人数、平均成绩、不及格人数,查询结果按平均成绩降序排序,查询去向为表ABC。
23.基于KC表和CJ表查询所有不能毕业的学生列表。要求查询输出字段为:学号、总学分,查询结果按总学分降序排序。注意:若成绩不低于60分学生可以取得对应课程的学分,总学分大于或等于20的学生可以毕业。
24.基于XS表、CJ表和KC表,查询每位学生取得学分的课程门数和总学分数(成绩大于或等于60时才能取得学分)。要求:输出字段依次为XH、XM、课程门数、总学分,查询结果按总学分降序排序,输出总学分排在前10位同学。
25.基于kc表和cj表,找出每门课程的kcdm、kcmc、选课人数、总成绩、平均分和最低分、最高分,结果先按总成绩降序排序,再按课程代码升序排序,把结果保存到kccj表文件中。
26.基于xs表和cj表,找出学生的xh、xm以及总成绩,要求输出总分前5名学习情况。
27.基于xs表和cj表,找出每个学生的xh、xm、总成绩、平均成绩以及最低分,要求输出总分不低于480分,最低分不低于60分的所有学生学习情况,最终按学生xh进行排序。
28. 已知教师表(JS)含有工号(gh,C)、院系专业代码(yxzydm,C)等字段;自由表图书借阅表(JYB)含有读者号(dzh,C)、分类号(flh,C)、借阅日期(jyrq,D)、还书日期(hsrq,D)等字段,教师的读者号与工号相同。要求在JXGL项目创建查询jsjybchaxun:
基于JS表和JYB表查询各院系专业借书情况。要求:查询输出字段为yxzydm、借书本数、
最大借阅天数;查询结果按最大借阅天数降序排序;输出去向为临时表TEMP。
注:借阅天数为hsrq与jyrq之差,未还的图书按当前系统日期计算借阅天数。 展开
2个回答
展开全部
--15.基于xs表查询所有1990年后出生同学的学号、姓名和出生日期,要求输出字段包括xh、xm、xb、csrq、jg和bjbh,结果按出生日期排序。
select xh,XML_SCHEMA_NAMESPACE,xb,csrq,jq,bjbh from xs
where YEAR(csrq)>=1990
order by csrq asc
--16.基于xs表查询张姓和王姓同学的姓名和籍贯,要求输出字段包括xm和jg,不能有重复内容,结果按籍贯排序,相同时再按姓名排序。
select distinct xm,jg from xs
where xm like'张%'or xm like '王%'
order by jg ,xm
--17.基于CJ表查询每门课程的最高分、最低分、平均分、总分和选课人数,要求输出字段包括kcdm、最高分、最低分、平均分、总分和选课人数,结果按平均分降序排序。
select kcdm,max([成绩])as [最高分],min([成绩]) as[最低分],avg([成绩])as [平均分],sum([成绩])as[每门课程总分],count(*) from cj
group by kcdm
order by [平均分] --这个题目没有表结构可能有很多种情况,最好把成绩表贴出来
--18.基于xs表统计男女同学的人数。要求输出:性别和人数(字段名依次分别为xb和rs),且查询结果按性别降序排列,性别相同时按人数降序排列。
select xb,count(*) as rs from xs
group by xb
order by xb desc ,rs desc
--19.基于XS表和CJ表,查询选课的学生名单,要求输出字段为:xh和xm。
select xh,xm from from XS
where xh in(select xh from CJ) --如果用连接查询可能有漏洞
20.基于XS表和CJ表,查询班级编号为“050202”未选课的学生名单。要求输出字段为:xh、xm,查询结果按学号升序排序。(提示:可采用左联接)
select XS.xh,xm from XS left join CJ on XS.xh=CJ.xh
where CJ.xh is NULL and [班级编号]='050202'
--21.基于XS表和CJ表,查询每位学生参加考试的课程门数、平均成绩和不及格课程数(成绩小于60者不及格)。要求输出字段为XH、XM、选课门数、平均成绩、不及格课程数,查询结果仅显示平均成绩大于或等于75的记录。
select S.xh,xm,[课程门数],[平均成绩],[不及格课程数] from (
select a.xh ,[课程门数],[平均成绩],[不及格课程数] from (select xh,count(*) as [课程门数],avg([成绩]) as[平均成绩] from CJ group by xh )a join
(select xh,count(*) as[不及格课程数] from CJ where [成绩]<60 group by xh) b on a.xh=b.xh)S join XS on S.xh=XS.xh
where [平均成绩]>=75
--22.基于KC表和CJ表,查询每门课程参加考试的人数、平均成绩和不及格人数(成绩小于60者不及格)。要求:输出字段依次为KCDM、KCMC、人数、平均成绩、不及格人数,查询结果按平均成绩降序排序,查询去向为表ABC。
select S.kcdm,kcmc,[参加考试人数],[平均成绩],[不及格人数] into ABC from
(select a.kcdm,[参加考试人数],[平均成绩],[不及格人数] from
(select kcdm,count(*) as[参加考试人数] ,avg([成绩])as[平均成绩] from CJ group by kcdm) a join
(select kcdm,count(*) as[不及格人数] from CJ where [成绩]<60 group by kcdm)b on a.kcdm=b.kcdm)S join KC
on S.kcdm=KC.kcdm
order by [平均成绩]desc
--23.基于KC表和CJ表查询所有不能毕业的学生列表。要求查询输出字段为:学号、总学分,查询结果按总学分降序排序。注意:若成绩不低于60分学生可以取得对应课程的学分,总学分大于或等于20的学生可以毕业。
select xh,sum([学分])as [总学分] from ( select xh, CJ.kcdm,[学分] from CJ join KC on CJ.kcdm=KC.kcdm
where [成绩]>=60 )a
group by xh
having sum([学分])<20
--24.基于XS表、CJ表和KC表,查询每位学生取得学分的课程门数和总学成绩(成绩大于或等于60时才能取得学分)。要求:输出字段依次为XH、XM、课程门数、总学分,查询结果按总学分降序排序,输出总学分排在前10位同学。
SELECT XS.xh,xm,[课程门数],[总学分] from (select xh,count(*)as[课程门数],sum([学分]) as [总学分] from (select xh, CJ.kcdm,[学分] from CJ join KC on CJ.kcdm=KC.kcdm
where [成绩]>=60)a group by xh )b join XS on b.xh=XS.xh
--25.基于kc表和cj表,找出每门课程的kcdm、kcmc、选课人数、总成绩、平均分和最低分、最高分,结果先按总成绩降序排序,再按课程代码升序排序,把结果保存到kccj表文件中。
select CJ.kcdm,kcmc,count(*) as[选课人数],sum([成绩])as[总成绩],avg([成绩])as [平均成绩],min([成绩])as [最低分],max([成绩])as [最高分]
into kccj from CJ join KC
on CJ.kcdm=KC.kcdm
group by CJ.kcdm,kcmc
order by [总成绩]desc ,CJ.kcdm asc
--26.基于xs表和cj表,找出学生的xh、xm以及总成绩,要求输出总分前5名学习情况。
select top(5) xs.xh,xm ,sum([成绩])as[总成绩]from xs join cj on xs.xh=cj.xh
group by xs.xh,xm
order by [总成绩]desc
--27.基于xs表和cj表,找出每个学生的xh、xm、总成绩、平均成绩以及最低分,要求输出总分不低于480分,最低分不低于60分的所有学生学习情况,最终按学生xh进行排序。
select xs.xh,xm ,sum([成绩])as[总成绩],avg([成绩])as[平均成绩],min([成绩]) as[最低分]from xs join cj on xs.xh=cj.xh
group by xs.xh,xm
having sum([成绩])>=480 and min([成绩])>=60
order by xh
/*28. 已知教师表(JS)含有工号(gh,C)、院系专业代码(yxzydm,C)等字段;自由表图书借阅表(JYB)含有读者号(dzh,C)、
分类号(flh,C)、借阅日期(jyrq,D)、还书日期(hsrq,D)等字段,教师的读者号与工号相同。要求在JXGL项目创建查询jsjybchaxun:
基于JS表和JYB表查询各院系专业借书情况。要求:查询输出字段为yxzydm、借书本数、
最大借阅天数;查询结果按最大借阅天数降序排序;输出去向为临时表TEMP。
注:借阅天数为hsrq与jyrq之差,未还的图书按当前系统日期计算借阅天数。
*/
use JXGL
go
declare @date datetime
declare @hsrq datetime
set @date=getdate()
if hsrq is null
set @hsrq=@date
else
set @hsrq=(select hsrq from JYB)
select yxzydm,count(*) as[借书本数],max(hsrq-jyrq) as[最大借阅天数] from JYB join JS ON dzh=gh
group by yxzydm
select xh,XML_SCHEMA_NAMESPACE,xb,csrq,jq,bjbh from xs
where YEAR(csrq)>=1990
order by csrq asc
--16.基于xs表查询张姓和王姓同学的姓名和籍贯,要求输出字段包括xm和jg,不能有重复内容,结果按籍贯排序,相同时再按姓名排序。
select distinct xm,jg from xs
where xm like'张%'or xm like '王%'
order by jg ,xm
--17.基于CJ表查询每门课程的最高分、最低分、平均分、总分和选课人数,要求输出字段包括kcdm、最高分、最低分、平均分、总分和选课人数,结果按平均分降序排序。
select kcdm,max([成绩])as [最高分],min([成绩]) as[最低分],avg([成绩])as [平均分],sum([成绩])as[每门课程总分],count(*) from cj
group by kcdm
order by [平均分] --这个题目没有表结构可能有很多种情况,最好把成绩表贴出来
--18.基于xs表统计男女同学的人数。要求输出:性别和人数(字段名依次分别为xb和rs),且查询结果按性别降序排列,性别相同时按人数降序排列。
select xb,count(*) as rs from xs
group by xb
order by xb desc ,rs desc
--19.基于XS表和CJ表,查询选课的学生名单,要求输出字段为:xh和xm。
select xh,xm from from XS
where xh in(select xh from CJ) --如果用连接查询可能有漏洞
20.基于XS表和CJ表,查询班级编号为“050202”未选课的学生名单。要求输出字段为:xh、xm,查询结果按学号升序排序。(提示:可采用左联接)
select XS.xh,xm from XS left join CJ on XS.xh=CJ.xh
where CJ.xh is NULL and [班级编号]='050202'
--21.基于XS表和CJ表,查询每位学生参加考试的课程门数、平均成绩和不及格课程数(成绩小于60者不及格)。要求输出字段为XH、XM、选课门数、平均成绩、不及格课程数,查询结果仅显示平均成绩大于或等于75的记录。
select S.xh,xm,[课程门数],[平均成绩],[不及格课程数] from (
select a.xh ,[课程门数],[平均成绩],[不及格课程数] from (select xh,count(*) as [课程门数],avg([成绩]) as[平均成绩] from CJ group by xh )a join
(select xh,count(*) as[不及格课程数] from CJ where [成绩]<60 group by xh) b on a.xh=b.xh)S join XS on S.xh=XS.xh
where [平均成绩]>=75
--22.基于KC表和CJ表,查询每门课程参加考试的人数、平均成绩和不及格人数(成绩小于60者不及格)。要求:输出字段依次为KCDM、KCMC、人数、平均成绩、不及格人数,查询结果按平均成绩降序排序,查询去向为表ABC。
select S.kcdm,kcmc,[参加考试人数],[平均成绩],[不及格人数] into ABC from
(select a.kcdm,[参加考试人数],[平均成绩],[不及格人数] from
(select kcdm,count(*) as[参加考试人数] ,avg([成绩])as[平均成绩] from CJ group by kcdm) a join
(select kcdm,count(*) as[不及格人数] from CJ where [成绩]<60 group by kcdm)b on a.kcdm=b.kcdm)S join KC
on S.kcdm=KC.kcdm
order by [平均成绩]desc
--23.基于KC表和CJ表查询所有不能毕业的学生列表。要求查询输出字段为:学号、总学分,查询结果按总学分降序排序。注意:若成绩不低于60分学生可以取得对应课程的学分,总学分大于或等于20的学生可以毕业。
select xh,sum([学分])as [总学分] from ( select xh, CJ.kcdm,[学分] from CJ join KC on CJ.kcdm=KC.kcdm
where [成绩]>=60 )a
group by xh
having sum([学分])<20
--24.基于XS表、CJ表和KC表,查询每位学生取得学分的课程门数和总学成绩(成绩大于或等于60时才能取得学分)。要求:输出字段依次为XH、XM、课程门数、总学分,查询结果按总学分降序排序,输出总学分排在前10位同学。
SELECT XS.xh,xm,[课程门数],[总学分] from (select xh,count(*)as[课程门数],sum([学分]) as [总学分] from (select xh, CJ.kcdm,[学分] from CJ join KC on CJ.kcdm=KC.kcdm
where [成绩]>=60)a group by xh )b join XS on b.xh=XS.xh
--25.基于kc表和cj表,找出每门课程的kcdm、kcmc、选课人数、总成绩、平均分和最低分、最高分,结果先按总成绩降序排序,再按课程代码升序排序,把结果保存到kccj表文件中。
select CJ.kcdm,kcmc,count(*) as[选课人数],sum([成绩])as[总成绩],avg([成绩])as [平均成绩],min([成绩])as [最低分],max([成绩])as [最高分]
into kccj from CJ join KC
on CJ.kcdm=KC.kcdm
group by CJ.kcdm,kcmc
order by [总成绩]desc ,CJ.kcdm asc
--26.基于xs表和cj表,找出学生的xh、xm以及总成绩,要求输出总分前5名学习情况。
select top(5) xs.xh,xm ,sum([成绩])as[总成绩]from xs join cj on xs.xh=cj.xh
group by xs.xh,xm
order by [总成绩]desc
--27.基于xs表和cj表,找出每个学生的xh、xm、总成绩、平均成绩以及最低分,要求输出总分不低于480分,最低分不低于60分的所有学生学习情况,最终按学生xh进行排序。
select xs.xh,xm ,sum([成绩])as[总成绩],avg([成绩])as[平均成绩],min([成绩]) as[最低分]from xs join cj on xs.xh=cj.xh
group by xs.xh,xm
having sum([成绩])>=480 and min([成绩])>=60
order by xh
/*28. 已知教师表(JS)含有工号(gh,C)、院系专业代码(yxzydm,C)等字段;自由表图书借阅表(JYB)含有读者号(dzh,C)、
分类号(flh,C)、借阅日期(jyrq,D)、还书日期(hsrq,D)等字段,教师的读者号与工号相同。要求在JXGL项目创建查询jsjybchaxun:
基于JS表和JYB表查询各院系专业借书情况。要求:查询输出字段为yxzydm、借书本数、
最大借阅天数;查询结果按最大借阅天数降序排序;输出去向为临时表TEMP。
注:借阅天数为hsrq与jyrq之差,未还的图书按当前系统日期计算借阅天数。
*/
use JXGL
go
declare @date datetime
declare @hsrq datetime
set @date=getdate()
if hsrq is null
set @hsrq=@date
else
set @hsrq=(select hsrq from JYB)
select yxzydm,count(*) as[借书本数],max(hsrq-jyrq) as[最大借阅天数] from JYB join JS ON dzh=gh
group by yxzydm
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询