Office中国论坛/Access中国论坛

标题: 一个复杂的查询 [打印本页]

作者: lingdud    时间: 2009-2-9 10:56
标题: 一个复杂的查询
select * from
(SELECT a.工号, main_ygxx.姓名, main_ksdm.科室名称, sum(iif(所扣项目='劳动纪律与职业道德',所扣分数,null)) AS 劳动纪律与职业道德, sum(iif(所扣项目='医疗安全',所扣分数,null)) AS 医疗安全, sum(iif(所扣项目='读书笔记',所扣分数,null)) AS 读书笔记, sum(iif(所扣项目='论文',所扣分数,null)) AS 论文, sum(iif(所扣项目='出科理论考试',所扣分数,null)) AS 出科理论考试, sum(iif(所扣项目='年度理论考试',所扣分数,null)) AS 年度理论考试, sum(iif(所扣项目='阶段理论考试',所扣分数,null)) AS 阶段理论考试, sum(iif(所扣项目='归档病例评展',所扣分数,null)) AS 归档病例评展, sum(iif(所扣项目='年度实践技能考试',所扣分数,null)) AS 年度实践技能考试, sum(iif(所扣项目='阶段实践技能考试',所扣分数,null)) AS 阶段实践技能考试, sum(所扣分数) AS 合计
FROM songwei_1nianziliao AS a, main_ygxx, main_ksdm
WHERE a.工号=main_ygxx.工号 and main_ksdm.科室代码=main_ygxx.科室代码
GROUP BY a.工号, main_ygxx.姓名, main_ksdm.科室名称) f, 第一年资料
(SELECT  a.工号, main_ygxx.姓名, main_ksdm.科室名称,sum(iif(所扣项目='劳动纪律与职业道德',所扣分数,null)) AS 劳动纪律与职业道德, sum(iif(所扣项目='医疗安全',所扣分数,null)) AS 医疗安全, sum(iif(所扣项目='读书笔记',所扣分数,null)) AS 读书笔记, sum(iif(所扣项目='论文',所扣分数,null)) AS 论文, sum(iif(所扣项目='出科理论考试',所扣分数,null)) AS 出科理论考试, sum(iif(所扣项目='年度理论考试',所扣分数,null)) AS 年度理论考试, sum(iif(所扣项目='阶段理论考试',所扣分数,null)) AS 阶段理论考试, sum(iif(所扣项目='归档病例评展',所扣分数,null)) AS 归档病例评展, sum(iif(所扣项目='年度实践技能考试',所扣分数,null)) AS 年度实践技能考试, sum(iif(所扣项目='阶段实践技能考试',所扣分数,null)) AS 阶段实践技能考试, sum(所扣分数) AS 合计
FROM songwei_2nianziliao AS a, main_ygxx, main_ksdm
WHERE a.工号=main_ygxx.工号 and main_ksdm.科室代码=main_ygxx.科室代码
GROUP BY a.工号, main_ygxx.姓名, main_ksdm.科室名称) b, 第二年资料

(SELECT  a.工号, main_ygxx.姓名, main_ksdm.科室名称,sum(iif(所扣项目='劳动纪律与职业道德',所扣分数,null)) AS 劳动纪律与职业道德, sum(iif(所扣项目='医疗安全',所扣分数,null)) AS 医疗安全, sum(iif(所扣项目='读书笔记',所扣分数,null)) AS 读书笔记, sum(iif(所扣项目='论文',所扣分数,null)) AS 论文, sum(iif(所扣项目='出科理论考试',所扣分数,null)) AS 出科理论考试, sum(iif(所扣项目='年度理论考试',所扣分数,null)) AS 年度理论考试, sum(iif(所扣项目='阶段理论考试',所扣分数,null)) AS 阶段理论考试, sum(iif(所扣项目='归档病例评展',所扣分数,null)) AS 归档病例评展, sum(iif(所扣项目='年度实践技能考试',所扣分数,null)) AS 年度实践技能考试, sum(iif(所扣项目='阶段实践技能考试',所扣分数,null)) AS 阶段实践技能考试, sum(所扣分数) AS 合计
FROM songwei_3nianziliao AS a, main_ygxx, main_ksdm
WHERE a.工号=main_ygxx.工号 and main_ksdm.科室代码=main_ygxx.科室代码
GROUP BY a.工号, main_ygxx.姓名, main_ksdm.科室名称)  c ,第三年资料

(SELECT  a.工号, main_ygxx.姓名, main_ksdm.科室名称,sum(iif(所扣项目='劳动纪律与职业道德',所扣分数,null)) AS 劳动纪律与职业道德, sum(iif(所扣项目='医疗安全',所扣分数,null)) AS 医疗安全, sum(iif(所扣项目='读书笔记',所扣分数,null)) AS 读书笔记, sum(iif(所扣项目='论文',所扣分数,null)) AS 论文, sum(iif(所扣项目='出科理论考试',所扣分数,null)) AS 出科理论考试, sum(iif(所扣项目='年度理论考试',所扣分数,null)) AS 年度理论考试, sum(iif(所扣项目='阶段理论考试',所扣分数,null)) AS 阶段理论考试, sum(iif(所扣项目='归档病例评展',所扣分数,null)) AS 归档病例评展, sum(iif(所扣项目='年度实践技能考试',所扣分数,null)) AS 年度实践技能考试, sum(iif(所扣项目='阶段实践技能考试',所扣分数,null)) AS 阶段实践技能考试, sum(所扣分数) AS 合计
FROM songwei_4nianziliao AS a, main_ygxx, main_ksdm
WHERE a.工号=main_ygxx.工号 and main_ksdm.科室代码=main_ygxx.科室代码
GROUP BY a.工号, main_ygxx.姓名, main_ksdm.科室名称)  d,第四年资料

(SELECT  a.工号, main_ygxx.姓名, main_ksdm.科室名称,sum(iif(所扣项目='劳动纪律与职业道德',所扣分数,null)) AS 劳动纪律与职业道德, sum(iif(所扣项目='医疗安全',所扣分数,null)) AS 医疗安全, sum(iif(所扣项目='读书笔记',所扣分数,null)) AS 读书笔记, sum(iif(所扣项目='论文',所扣分数,null)) AS 论文, sum(iif(所扣项目='出科理论考试',所扣分数,null)) AS 出科理论考试, sum(iif(所扣项目='年度理论考试',所扣分数,null)) AS 年度理论考试, sum(iif(所扣项目='阶段理论考试',所扣分数,null)) AS 阶段理论考试, sum(iif(所扣项目='归档病例评展',所扣分数,null)) AS 归档病例评展, sum(iif(所扣项目='年度实践技能考试',所扣分数,null)) AS 年度实践技能考试, sum(iif(所扣项目='阶段实践技能考试',所扣分数,null)) AS 阶段实践技能考试, sum(所扣分数) AS 合计
FROM songwei_5nianziliao AS a, main_ygxx, main_ksdm
WHERE a.工号=main_ygxx.工号 and main_ksdm.科室代码=main_ygxx.科室代码
GROUP BY a.工号, main_ygxx.姓名, main_ksdm.科室名称) e 第五年资料

where
f.工号=b.工号 and f.工号=c.工号 and f.工号=d.工号 and f.工号=e.工号 and b.工号=c.工号 and b.工号=d.工号 and b.工号=e.工号 and c.工号=d.工号 and c.工号=e.工号 and d.工号=e.工号
但是是错的 要查的是每年都显示 有的表有工号的先关记录 有的表没工号的先关记录 这样查出来 只有全部相同的工号的才能被找出来 怎么样查能查到全部结果
以上SQL语句的作用是
将 每年 资料中的 工号 所扣项目 所扣分数提出来 显示为 工号+每年的所扣项目
比如 工号   劳动纪律与职业道德第一年资料  劳动纪律与职业道德第二年资料 ....
作者: Grant    时间: 2009-2-9 11:05
这样子的查询看了都会晕掉
作者: Grant    时间: 2009-2-9 11:06
整理个文件上来吧
作者: lingdud    时间: 2009-2-9 14:53
本帖最后由 lingdud 于 2009-2-9 15:20 编辑

根据所有表写出 songwei_5nian
第一阶段=前3年总和
第二阶段=第4年加第5年的
查询每年的 和查询已满 1 2 3 4 5年的
作者: lingdud    时间: 2009-2-9 14:58
本帖最后由 lingdud 于 2009-2-10 15:36 编辑

其中可能缺少第几年的工号资料
比如 第一,三年有扣分记录 但第二年没有
accsee完整外部连接full join写上去都不能用``
超级复杂的查询吧
作者: changweiren    时间: 2009-2-14 20:37
名副其实
作者: lnace    时间: 2010-6-11 17:46
这样子的查询看了都会晕掉
作者: ZHENGLIAN    时间: 2010-8-24 09:25
这样子的查询看了都会晕掉
作者: mzg7608    时间: 2010-12-29 16:09
整理个文件上来吧
作者: shouhou    时间: 2010-12-29 19:54
这样子的查询看了都会晕掉




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3