Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 创建视图以获取在每门课程中获得最高分数的学生的姓名_Sql Server 2008_View - Fatal编程技术网

Sql server 2008 创建视图以获取在每门课程中获得最高分数的学生的姓名

Sql server 2008 创建视图以获取在每门课程中获得最高分数的学生的姓名,sql-server-2008,view,Sql Server 2008,View,课程表:courseId、courseName、导师 学生表:studentId,studentName 标记表:标记SID、学生ID、课程ID、标记 如果需要更多信息,请发表评论 你能把你试过的东西贴出来吗?你的标题模棱两可。如果同一个学生在他们所有的班级中都得了高分,你是否只想吵架?或者你想知道每个班级排名最高的学生的名字?你能展示一些样本数据和期望的输出吗?所以我们有一些线索,如果这是一个数据轴(每个学生和他们的分数被列为每个班级的一列)还是一个正常的结果集(每个班级有一行)?另

课程表:courseId、courseName、导师
学生表:studentId,studentName
标记表:标记SID、学生ID、课程ID、标记
如果需要更多信息,请发表评论



你能把你试过的东西贴出来吗?你的标题模棱两可。如果同一个学生在他们所有的班级中都得了高分,你是否只想吵架?或者你想知道每个班级排名最高的学生的名字?你能展示一些样本数据和期望的输出吗?所以我们有一些线索,如果这是一个数据轴(每个学生和他们的分数被列为每个班级的一列)还是一个正常的结果集(每个班级有一行)?另外,在并列列表的情况下,指定你想做什么也很有用。两个学生,任意选择一个,按字母顺序, ...? 所以,请确保你的样本数据包括一个平局,并且你想要的结果显示了你想要如何处理它。我想找到每门课程得分最高的学生,你可以看看。我想你会找到你想要的。
CREATE VIEW maxmarks 
AS
SELECT b.studentName,courseId from [dbo].[zz_16_Marks_tbl] a,[dbo].[zz_16_Student_tbl] b
WHERE a.studentId=b.studentId AND marks in(
SELECT MAX(marks),courseId FROM [dbo].[zz_16_Marks_tbl] GROUP BY courseId)
CREATE VIEW maxmarks 
AS
WITH CTE AS (SELECT MAX(marks),courseId FROM [dbo].[zz_16_Marks_tbl] GROUP BY courseId )
SELECT b.studentName,a.courseId 
from [dbo].[zz_16_Marks_tbl] a
INNER JOIN [dbo].[zz_16_Student_tbl] b ON a.studentId=b.studentId 
INNER JOIN CTE c ON a.courseId =c.courseId and a.marks=b.marks