每行的子查询

时间:2013-09-13 15:34:48

标签: sql nested subquery

使用这些表:

* 学生{'s_id','s_name,'...},类{'c_id','c_name',...} student2class {'s_id','c_id'},成绩{' S_ID”, 'C_ID', '级'} *

是否可以执行查询(嵌套查询?)将类名作为副标题,然后将所有学生(该类)和成绩,下一个类名作为副标题...

我需要的结果是:

数学

约翰...... C

安娜...... B

[...]

生物学

安娜...... C

杰克......一个

[...]

对于来自类I的每一行,将有一个子查询获取与此类相关的所有数据

2 个答案:

答案 0 :(得分:0)

解决方案应该在客户端代码中实现,而不是在数据库中实现。从数据库中你应该得到一个简单的表格式数据(主题,学生,年级)

然后将上面的记录集转换为您想要的格式: 对于C#中的示例,您可以将记录集转换为查找

var Lookup = DataSet.Tables [0] .Rows.ToLookup(x => x [“subjectColumn”]);

现在您可以遍历查找并格式化结果

foreach(查找中的var等级)

{

subject = grade.Key;

...

}

答案 1 :(得分:0)

无需任何子查询。您可以通过这种方式获取数据:

SELECT c_name, s_name_, grade
FROM student, class, grades
WHERE student.s_id = grades.s_id and class.c_id = grades.c_id
ORDER BY c_name

结果的呈现取决于您的系统/工具,正如其他人已经说过的那样。这是Microsoft Access解决方案的链接: http://office.microsoft.com/en-001/access-help/create-a-grouped-or-summary-report-HA001159160.aspx