当前位置: 代码迷 >> Sql Server >> Group Haing分组与条件能起冲突吗
  详细解决方案

Group Haing分组与条件能起冲突吗

热度:78   发布时间:2016-04-24 08:58:02.0
Group Haing分组与条件会起冲突吗?
数据库查询,如图。从sctab选课表中查询1.成绩最高的学生信息(连接其他表显示学生姓名、教师、以及课程名。)2.原题目不变,加入条件查询课程名为“程序设计”的最成绩的学生信息。

疑问:
1、【为什么第二种方法查询不出来呢?只是把成绩都显示出来了?GROUP HAVING和第一种方法有什么区别呢?】2、【用一种正确的方法,加入条件ctab.kcm='程序设计'(写在Where或者having里都查询不出来任何结果)把排序的Group Having 去掉可以查询出来。添加的条件与分组查询有冲突吗?这题应该怎么写才好?尽可能不用临时表与视图】
------解决思路----------------------
因为你 SELECT 和 GROUP BY 是一样的字段,每条原始记录都是一个分组等于不加分组。
MAX(cj) 是在当前分组中求最大,每条原始记录都求一次最大,等于还是原先的cj。

1.成绩最高的学生信息
SELECT TOP 1 ...
  FROM ...
 WHERE ...
 ORDER BY sctab.cj DESC
-- 不用 GROUP BY、HAVING,只要排序后取 TOP 1


2.查询课程名为“程序设计”的最成绩的学生信息
SELECT TOP 1 ...
  FROM ...
 WHERE ...
   AND ctab.kcm = '程序设计'
 ORDER BY sctab.cj DESC
-- 在第一个查询上加个条件即可
  相关解决方案