首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于多个条件遍历一个表

问基于多个条件遍历一个表
EN

Stack Overflow用户
提问于 2020-01-12 13:54:20
回答 2查看 54关注 0票数 1

学生表

代码语言:javascript
复制
student_id  student_name
1           John
2           Mary

Grades表

代码语言:javascript
复制
student_id   year   grade_level  school        Course    Mark
  1          2015    10          Smith High     Algebra   95
  1          2015    10          Smith High     English   96
  1          2016    11          Smith High     Geometry  85
  1          2016    11          Smith High     Science   88
  2          2015    10          Smith High     Algebra   98
  2          2015    10          Smith High     English   93
  2          2016    11          Smith High     Geometry  97
  2          2016    11          Smith High     Science   86

我试图展示每一年的成绩,以及学生在成绩中上了什么课。

所以我要寻找的最终输出是这样的:

代码语言:javascript
复制
[student_id1] [year1] [grade1] [school1]
[course1] [mark1]
[course2] [mark2]
[course3] [mark3]...
[student_id1] [year2] [grade2] [school1]
[course1] [mark1]
[course2] [mark2]
[course3] [mark3]...
[student_id2] [year1] [grade1] [school1]
[course1] [mark1]
[course2] [mark2]
[course3] [mark3]...

这将全部放在一列/一行中。所以在这个特定的例子中,这将是我的结果:

代码语言:javascript
复制
1 2015 10 Smith High 
Algebra 95
English 96
1 2016 11 Smith High 
Geometry 85
Science 88
2 2015 10 Smith High 
Algebra 98
English 93
2 2016 11 Smith High 
Geometry 97
Science 86

因此,每当学生id、年级、年级或学校名称发生变化时,我都会有一行代码来处理,并遍历该组中的课程。所有这些都在一列/一行中。

这就是我到目前为止所拥有的,但我不确定如何才能正确地循环每个小组的课程和成绩。如果能把我引向正确的方向,我将不胜感激。

代码语言:javascript
复制
select s.student_id + '' + year + '' + grade_level + '' + school 
from students
join grades on students.student_id = grades.student_id
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-12 16:58:01

如果您想在您的SQL环境中执行此操作,则取决于您正在使用的数据库管理系统。

例如,如果使用的是Transact SQL,则可以尝试查看this link。

通常,这种循环和交互是在与SQL DB耦合的编程语言中完成的。

无论如何,如果您真的想在SQL中做到这一点,就应该看看存储过程和游标。

票数 0
EN

Stack Overflow用户

发布于 2020-01-12 16:43:28

您正在尝试将表示与从数据库表中检索数据混合在一起。在sql中循环遍历结果集可以通过游标实现,但这并不可取。更好的做法是使用两个查询提取所需的数据,然后使用您选择的语言打印。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59701343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档