学员表
ID 姓名 性别 单位
1 人员1 男 单位1
2 人员2 女 单位2岗位表
ID 岗位名称
1 仓库管理
2 普通文员课程表
ID 课程名称
1 英语
2 政治
3 其他公共课
4 仓管
5 质保
6 写作岗位需要学习课程表
岗位ID 课程ID
1 1
1 3
1 4
1 5
2 1
2 2
2 3
2 6学员学习情况表(一个视图)
学员ID 岗位ID 学习的课程ID 通过情况(1为通过)
1 1 1 1
1 2 1 0
1 1 3 1
1 1 4 1
1 1 5 1
2 2 1 1
2 2 2 1
2 2 3 1
2 2 6 0
2 1 3 1现在要查的要求是,查出指定岗位要学习的课程已经全部通过的学员名单
比如仓库管理岗位已经全部通过的学员是人员1
哪位朋友可以帮忙写一段SQL语句吗,存储过程也可以的。
ID 姓名 性别 单位
1 人员1 男 单位1
2 人员2 女 单位2岗位表
ID 岗位名称
1 仓库管理
2 普通文员课程表
ID 课程名称
1 英语
2 政治
3 其他公共课
4 仓管
5 质保
6 写作岗位需要学习课程表
岗位ID 课程ID
1 1
1 3
1 4
1 5
2 1
2 2
2 3
2 6学员学习情况表(一个视图)
学员ID 岗位ID 学习的课程ID 通过情况(1为通过)
1 1 1 1
1 2 1 0
1 1 3 1
1 1 4 1
1 1 5 1
2 2 1 1
2 2 2 1
2 2 3 1
2 2 6 0
2 1 3 1现在要查的要求是,查出指定岗位要学习的课程已经全部通过的学员名单
比如仓库管理岗位已经全部通过的学员是人员1
哪位朋友可以帮忙写一段SQL语句吗,存储过程也可以的。
解决方案 »
- 有关javascript读取Excel日期型的转换问题。
- 怎么样修改,这段简单的程序能应用于google chrome?
- . NET framework兼容问题
- 一个服务器端控件,如何让窗体登陆时,设置它为焦点呀
- 谁有ie 5.5 5.0 的独立版本 测试程序用` 一程序在 IE 5.5自动关闭 请教
- 谁能给我讲讲怎么建立一存储过程,在asp.net怎么调用,还添加什么参数给command,多谢了
- 站点文件中,我删除了一个目录,现在编译出错??/
- ASPxScheduler 9.2.6汉化问题
- 我想找工作,请问长沙又没有好一点的作asp.net的软件公司,能否推荐一下!
- 关于asp.net中datalist空件怎样绑定时间,请给予提示谢谢
- *.aspx不是asp程序吗?用IIS还不能运行聂,需要搭建什么环境运行呢?
- 大家帮我看一看如何让向上滚动不影响页面?
学员表 LEFT OUTER JOIN 岗位表 On ***
LEFT OUTER JOIN 岗位需要学习课程表 On ****
LEFT OUTER JOIN 课程表 On ***
select 学员ID,岗位ID,count(学习的课程ID) shumu from 学员学习情况表 group by 学员ID,岗位ID
where 通过情况=1) t1
where shumu=(select count(*) from 课程表)
WHERE EXISTS(SELECT 学员ID FROM 学员学习情况表 WHERE 通过情况<>0 AND 学员ID=a.学员ID)@岗位ID是你要查的岗位
学员ID 岗位ID 学习的课程ID 通过情况(1为通过)
1 1 6 1因为此查询是基于一个假设:学员不学习与岗位无关的课程
(
select x.学员ID, count(1) as 通过课程数
from 学员学习情况表 x
join
(
select 岗位ID, 课程ID from 岗位需要学习课程表 where 岗位ID= @岗位ID
) y
on x.岗位ID = y.岗位ID and x.课程ID = y.课程ID
where x.通过情况 = 1
group by x.学员ID
) w
where w.通过课程数 = (select count(1) from 岗位需要学习课程表 where 岗位ID= @岗位ID )
@岗位ID是你要查的岗位
(
select x.学员ID, count(1) as 通过课程数
from 学员学习情况表 x
join
(
select 岗位ID, 课程ID from 岗位需要学习课程表 where 岗位ID= @岗位ID
) y
on x.岗位ID = y.岗位ID and x.课程ID = y.课程ID
where x.通过情况 = 1
group by x.学员ID
) w
where w.通过课程数 = (select count(1) from 岗位需要学习课程表 where 岗位ID= @岗位ID )
@岗位ID是你要查的岗位
005的限制条件,我可能通过其他程序来控制。
谢谢各位了。