以文本方式查看主题 - 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 --
好看一点的数据再发一点。 我就想筛选出学生的课程名称 。通过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.课程名称 |