以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]多条件筛选结果值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82938)

--  作者:monvzhilei
--  发布时间:2016/3/28 14:21:00
--  [求助]多条件筛选结果值
我想通过  sql语句  
   
S E L E C T 姓名, 课程名称,折算成绩,补考成绩,重修成绩
FROM 六个学院
WHERE [折算成绩]<60 and [补考成绩]<60 and [重修成绩]<60

    
姓名 课程名称 折算成绩 补考成绩 重修成绩 学年
黄剑超 大学英语2 49 0 0 2011-2012
黄剑超 大学英语2 44 60 0 2012-2013
黄剑超 大学英语2 47 22 0 2010-2011
黄剑超 乒乓球 75 0 0 2010-2011
黄剑超 大学化学实验A2 88 0 0 2010-2011



从 上面的这些数据 筛选不出   大学英语2   这么课程即可 。因为只要有一次成绩大于等于60 就算通过了。我不知道我自己写的语句哪儿出问题了。还是可以筛选出大学英语2的 两条记录。

--  作者:monvzhilei
--  发布时间:2016/3/28 14:22:00
--  
姓名 课程名称 折算成绩 补考成绩 重修成绩 学年
黄剑超 大学英语2 47 22 0 2010-2011
黄剑超 大学英语2 49 0 0 2011-2012
黄剑超 大学英语2 44 60 0 2012-2013

好看一点的数据再发一点。



我就想筛选出学生的课程名称 。通过N次考试,还有不及格的。  上面给的这数据,说明大学英语2   其实已经算通过,不需要筛选出来 。  但是我的语句可以筛选出第一和第二条记录 。 这个是不对的。 应该大学英语2是不应该筛选出来。 
[此贴子已经被作者于2016/3/28 14:24:13编辑过]

--  作者:大红袍
--  发布时间:2016/3/28 14:38:00
--  

select 姓名, 课程名称,折算成绩,补考成绩,重修成绩 fr om 六个学院 as a inner join (select 姓名, 课程名称,max(折算成绩) as 最大折算成绩,max(补考成绩) as 最大补考成绩, max(重修成绩) as 最大重修成绩 FR OM 六个学院 group by 姓名,课程名称) as b on a.姓名=b.姓名 and a.课程名称 = b.课程名称 where [最大折算成绩]<60 and [最大补考成绩]<60 and [最大重修成绩]<60


--  作者:monvzhilei
--  发布时间:2016/3/28 16:12:00
--  
大红袍老师:
  根据语句,出现这样的错误,不知道哪儿少了
详细错误信息:
该特定字段 \'姓名\' 可以参考 SQL 语句中 FROM 子句列表中的多个表。

[此贴子已经被作者于2016/3/28 16:13:06编辑过]

--  作者:大红袍
--  发布时间:2016/3/28 16:19:00
--  
select a.姓名, a.课程名称