求大佬救救孩子 sql server数据库 下面几个问题,代码该怎么打?

求大佬救救孩子 sql server数据库 下面几个问题,代码该怎么打?,第1张

其中编号为了方便使用id作为编号,实际运用中编号应该用特定的格式,以上语句中id设置为了主键,保证了编号的唯一性。

第一条查询,查询某个学生的信息;该语句中使用了学号来查询学生的信息,也可改为其他条件。

select s.student_id as 学号,

s.student_name as 姓名,

s.sex as 性别,

s.house_address as 家庭地址,

s.phone as 联系电话,

c.class_name as 班级名称,

m.major_name as 专业名称,

g.grade_name as 年级名称,

d.department_name as 系部名称

from student s left join class c on s.class_id=c.class_id

left join major m on c.major_id = m.major_id left join grade g on m.grade_id=g.grade_id

left join department d on m.department_id=d.department_id

where s.student_id=1

第二条:查询某个辅导员班级的学生成绩

select c.class_name as 班级名称,

s.student_id as 学号,

s.student_name as 姓名,

cr.course_name as 课程名称,

p.performance as 成绩

from class c left join student s on s.class_id=c.class_id

left join performance p on s.student_id=p.student_id

left join course cr on p.course_id =cr.course_id

where instructor ='王子亮’

第三条:查询某个协会的学生,根据协会的名称查询

select mo.mass_organization_name as 协会名称,

s.student_name as 姓名,

s.sex as 性别,

s.house_address as 家庭地址,

s.phone as 联系电话,

c.class_name as 班级名称,

m.major_name as 专业名称,

g.grade_name as 年级名称,

d.department_name as 系部名称

from mass_organization mo left join student s on mo.mass_organization_id=s.mass_organization_id

left join class c on s.class_id=c.class_id

left join major m on c.major_id = m.major_id left join grade g on m.grade_id=g.grade_id

left join department d on m.department_id=d.department_id

where mass_organization_name='音乐协会’

由于没有画图工具,E-R图暂不画出。

结果一

结果二

结果三

没有对照关系,唯一能看到的关系就是年级不同采用不同的编号。如果一定要从sheet2里面抓取,只能是用不同年级顺序抓取,然后赋值给不同的姓名了。

如图示,C2填入下面公式:

=IFERROR(INDEX(Sheet2!B:B,1+SMALL(IFERROR(MATCH(B2&Sheet2!$B$2:$B$20,CONCATENATE(Sheet2!$A$2:$A$20,Sheet2!$B$2:$B$20),),2^20),COUNTIF($B$1:$B2,B2))),"")

数组三键Ctrl+Shift+Enter结束,向下填充。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9910008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存