设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4296|回复: 9
打印 上一主题 下一主题

[BOM] 一个复杂的查询

[复制链接]
跳转到指定楼层
1#
发表于 2009-2-9 10:56:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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语句的作用是
将 每年 资料中的 工号 所扣项目 所扣分数提出来 显示为 工号+每年的所扣项目
比如 工号   劳动纪律与职业道德第一年资料  劳动纪律与职业道德第二年资料 ....
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-2-9 11:05:09 | 只看该作者
这样子的查询看了都会晕掉
3#
发表于 2009-2-9 11:06:13 | 只看该作者
整理个文件上来吧
4#
 楼主| 发表于 2009-2-9 14:53:12 | 只看该作者
本帖最后由 lingdud 于 2009-2-9 15:20 编辑

根据所有表写出 songwei_5nian
第一阶段=前3年总和
第二阶段=第4年加第5年的
查询每年的 和查询已满 1 2 3 4 5年的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
 楼主| 发表于 2009-2-9 14:58:20 | 只看该作者
本帖最后由 lingdud 于 2009-2-10 15:36 编辑

其中可能缺少第几年的工号资料
比如 第一,三年有扣分记录 但第二年没有
accsee完整外部连接full join写上去都不能用``
超级复杂的查询吧
6#
发表于 2009-2-14 20:37:42 | 只看该作者
名副其实
7#
发表于 2010-6-11 17:46:00 | 只看该作者
这样子的查询看了都会晕掉
8#
发表于 2010-8-24 09:25:53 | 只看该作者
这样子的查询看了都会晕掉
9#
发表于 2010-12-29 16:09:54 | 只看该作者
整理个文件上来吧
10#
发表于 2010-12-29 19:54:35 | 只看该作者
这样子的查询看了都会晕掉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-3 13:34 , Processed in 0.143638 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表