请教一个关于ACCESS查询问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:51:29
我用ACCESS建了一个表,字段分别为姓名、单位、2001年、2002年......2010年,存放的是员工从2001年到2010年的参加业务等各方面的培训情况。我想通过在一个窗体中输入查询的年份(可输入多个年份)来查找所输入年份未参加培训的人员。请教高手怎么做!!!
如果这样设计表,我就不能查找某个员工在某年参加了什么样的培训了(培训内容就不能查清了)!!

你的这个数据库本身就是一个错误的设计。
你需要两个表——
表1:人员编号、姓名、单位;
表2:人员编号、年份、培训。

查询:
select * from 表2 left join 表1 on 表2.人员编号 = 表1.人员编号 where 年份 in (2001, 2002, 2007) and 培训 = 0

=======================================================
补充(举个例子):

表1数据
编号 姓名 单位
0001 张三 人事局
0002 李四 海事局

表2数据
编号 年份 培训
0001 2006 YES
0002 2006 YES
0001 2007 YES
0002 2007 NO

0001号员工张三,在2006和2007都有参加培训。
0002号员工李四,只在2006年有参加培训。

表1中的编号为主关键字,表2中编号和年份为复合关键字。
建议你去学一下《数据库系统原理》,设计出好的数据库,才能保证你以后的工作能够正确有效的开展。
====================================================
那需要三个表,把培训信息单独拿出来。

表1:[人员编号]、姓名、单位;
表2:[人员编号]、[培训编号]、参加;
表3:[培训编号]、年份、培训内容。

表1数据
人员编号 姓名 单位
0001 张三 人事局
0002 李四 海事局

表2数据
人员编号 培训编号 参加
0001 0001 YES
0002 0001 YES
0001 0002 YES
0002 0002 NO

表3数据
培训编号 年份 培训内容
0001 2006 扫地