2个回答
2014-06-07
展开全部
设你那三张表的别名(按你给出的顺序),分别为:A、B、C
第一题解答:
select * from A inner join C on A.学号=C.学号
inner join B on C.课程号=B.课程号
where datediff(yy,A.出生年月,getdate()) between 23 and 25;
第二题解答:
select sum( (case when 性别=N'男' then 1 else 0 end) ), /*男生人数*/
sum( (case when 性别=N'女' then 1 else 0 end) ) /*女生人数*/
from A;
-------------------
说明,第一题的关联要看你业务来定,有可能要用left 来关联,至于为什么就不说了。其实这样的题目,不应该拿出来问的,对你说一句不客气的话:回答这样的问题,等于是放纵问问题者。(如果你是本着认真学习的态度,私信你QQ给我,非常愿意帮助你)。
----=========================
你的语法都错了:between 不是这样用的。
第一题解答:
select * from A inner join C on A.学号=C.学号
inner join B on C.课程号=B.课程号
where datediff(yy,A.出生年月,getdate()) between 23 and 25;
第二题解答:
select sum( (case when 性别=N'男' then 1 else 0 end) ), /*男生人数*/
sum( (case when 性别=N'女' then 1 else 0 end) ) /*女生人数*/
from A;
-------------------
说明,第一题的关联要看你业务来定,有可能要用left 来关联,至于为什么就不说了。其实这样的题目,不应该拿出来问的,对你说一句不客气的话:回答这样的问题,等于是放纵问问题者。(如果你是本着认真学习的态度,私信你QQ给我,非常愿意帮助你)。
----=========================
你的语法都错了:between 不是这样用的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给表结构啊,不给表结构谁给你写!
追问
。是不是这个
追答
1:查询20-25岁的同学选修了哪些课程?
select 课程信息表.课程名
from 选课信息表,学生信息表,课程信息表
where 选课信息表.课程号 = 课程信息表.课程号 and 选课信息表.学号= 学生信息表.学号
and Year(getdate())-学生信息表.出生年月 between (20,25)
group by 课程信息表.课程名人数
2:
select 学生信息表.性别,count(*) as 人数
from 选课信息表,学生信息表,课程信息表
where 选课信息表.课程号 = 课程信息表.课程号 and 选课信息表.学号= 学生信息表.学号
and Year(getdate())-学生信息表.出生年月 between (20,25)
group by 学生信息表.性别
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询