首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个查询,请前辈指点一下,小弟我郁闷很久了!

2012-02-29 
一个查询,请前辈指点一下,我郁闷很久了!!期末考试表课程任课教师监考教师考试教室编号计算机张三张三1011

一个查询,请前辈指点一下,我郁闷很久了!!
期末考试表
课程 任课教师 监考教师 考试教室 编号

计算机 张三 张三 101 1
计算机 王五 李四 102 2
计算机 张三 王五 103 3

软件工程 钱七 张三 207 4
软件工程 冯九 李四 209 5
软件工程 钱七 陈八 405 6
.
.
.


现在想做一个查询,查询出 同一门课程 的任课教师 不包含在 同一门课程的监考教师中的课程和任课教师?

例如:《软件工程》的钱七、冯九就不在《软件工程》的监考教师(张三、李四、陈八)这门考试中。

  这问题郁闷很久了,请前辈指点!!






[解决办法]
现在想做一个查询,查询出 同一门课程 的任课教师 不包含在 同一门课程的监考教师中的课程和任课教师? 

SQL code
select * from t awhere not exists(select 1 from t where 课程=a.课程 and 任课教师<>b.监考教师  )
[解决办法]
select * from t a
where not exists(select 1 from t where 课程=a.课程 and 任课教师<>b.监考教师 )


[解决办法]
SQL code
create table #(课程        varchar(10),     任课教师  varchar(10),     监考教师 varchar(10),    考试教室 int,    编号 int)insert into #select '计算机'   ,      '张三',               '张三',               101 ,          1   union allselect '计算机'   ,      '王五',               '李四',               102 ,          2   union allselect '计算机'   ,      '张三',               '王五',               103 ,          3   union allselect '软件工程' ,    '钱七'  ,             '张三',               207   ,        4     union allselect '软件工程' ,    '冯九'  ,             '李四',               209   ,        5     union allselect '软件工程' ,    '钱七'  ,             '陈八',               405   ,        6 select * from # awhere not  exists(select 1 from # where 课程=a.课程 and 任课教师 in(select 监考教师 from # ) )/*课程         任课教师       监考教师       考试教室        编号          ---------- ---------- ---------- ----------- ----------- 软件工程       钱七         张三         207         4软件工程       冯九         李四         209         5软件工程       钱七         陈八         405         6(所影响的行数为 3 行)*/
[解决办法]
select * from # a where 任课教师 in (select 监考教师 from # where 课程=a.课程)

热点排行