繁体   English   中英

嵌套的select语句子查询返回多个行

[英]nested select statement subquery returns more than one row

我有两个学生表格,另一个是标记,该标记包含所有学生的信息,例如名字,姓氏和唯一的ID号,并且标记包含每个学生每年获取的标记,该标记每年存储一次,即从第三年开始的学生将有3个条目标记表

现在我想设计一个查询,其中包含学生信息和所有三年成绩单记录

输出应该是这样的:

First Name | Last Name | 1st Year Marks | 2nd Year Marks | 3rd Year Marks

我不知道您的嵌套语句是什么样子,但是您想要以下内容:

select
    s.firstname,
    s.lastname,
    sum(case when m.year = m2.minyear then m.mark else 0 end) as `1st Year Marks`,
    sum(case when m.year = m2.minyear+1 then m.mark else 0 end) as `2nd Year Marks`,
    sum(case when m.year = m2.minyear+2 then m.mark else 0 end) as `3rd Year Marks`
from
    students s
    inner join marks m on
        s.student_id = m.student_id
    inner join (select student_id, min(year) as minyear from marks group by student_id) m2 on
        s.student_id = m2.student_id
group by
    s.firstname,
    s.lastname

由于学生可以在不同的时间到达,所以我在这里以及有条件的年份都进行了有条件的求和。 如果您有一个包含“ Freshman”,“二年级”等的Year表,然后跟踪学生完成该Year的时间,这会更容易,但是我想这会起作用。

尝试下面的查询..我正在考虑学生和分数在列中有学生证

选择stu.firstname +'|' + stu.lastname +'|' + marks.1styr +'|' + marks.2ndyr +'|'+ marks.3rdyr来自学生的stu,标记为stu.uniqueid = marks.uniqueid

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM