access查询问题

[复制链接]
查看11 | 回复4 | 2011-4-6 12:37:08 | 显示全部楼层 |阅读模式
一个表为人员姓名、职务、任职年限,工作年限、工资等信息,另外一个为工资关系表,不同职务、工作年限、任职年限共同决定对应的工资级别,其中工资关系表中、工作年限、任职年限为区段(比如工作3年以下,【4-7年】、【8-11年】,任职年限为担任职务时间,比如担任总经理3年以下,【4-6年】等)
由于数据很多,access中怎么实现自动区间查询

可以加[email protected]
回复

使用道具 举报

千问 | 2011-4-6 12:37:08 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">看完题目,不大明白自动区间查询的意思。如果理解错了请追问。
从问题描述来看,表设置和我以前做的有点出入,不过“条条道路通罗马”,我以前记录的表是:姓名、职务、参加工作时间、任职时间、离职时间、中断工作时间;然后用now()和参加工作时间、中断工作时间来计算参加工作时间、用now()、任职时间计算任职年限;用任职时间、离职时间、职务生成任职简历。
从关系设置来看,个人情况表有了职务和任职年限,工资关系表也有职务和任职年限,可以做关联查询来实现。例如查区间为\"4-7年\"的记录:
一、把工资关系表的工作年限分解成2个数字型字段(最好修改表,当然也可以通过查询实现,但会拖慢查询速度)例如【4-7年】分解成\"起始年\"(记录\"4\")和\"终止年\"(记录\"7\")两个字段。
二、建立基于两个表的查询,用职务链接,在\"起始年\"字段的条件写上:[个人情况表].[职务年限]
在\"终止年\"写上:[个人情况表].[职务年限]

















<h4 class=\"ask\">追问





<pre class=\"replyask-text\" id=\"content-3402893\">两个表中职务和任职年限是不同的,比如工资关系表中任总经理3-8年,工龄10-13年,对应工资5000元,同样,总经理级别,任总经理3-8年,工龄14-17年,工资5800。工资表中的职务、任职年限、工龄年限是分区段的,比如任职3-5年(也就是任职3年,4年,5年)在表中对应工资是一样的,分区段是这个意思。
而个人表中,任职时间是固定的,比如,张山,任经理5年,那么他就要到3-5年这个区间去查。
回复

使用道具 举报

千问 | 2011-4-6 12:37:08 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-3414358\">所以我第一步要你将\"3-8年\"这样的字段拆分。如果你保存的任职年限是\"3-8年\",这个字段保存就是文本型,文本型的字段无法进行>、<的运算,要转换成数字才可以进行比较。
我建议工资关系表的建立如下
职务职务起始年职务终止年工龄起始年工龄终止年对应工资性别要求
总经理 3
8
10
13
5000
总经理 3
8
14
17
5800
秘书
0
2
0
2
8500

秘书
3
8
14
17
3200
回复

使用道具 举报

千问 | 2011-4-6 12:37:08 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-3455205\">这样一个简单的表,由于同一职务,同一任职时间,不同的工龄区间都要拆开做一次,表就太大了。
而且原来表都做好了,不能实现一个程序,自动判断在那个区间,然后自动查找吗?
回复

使用道具 举报

千问 | 2011-4-6 12:37:08 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-3463557\">表是否简单,要看它的信息量是否能够清晰,一个字段,最好只含有1个信息。
只要数据量还没有上百万条,应该称不上表太大。拆分了表,前后比较相对多了记录,但可以提高日后的运算效率,不见得表大了就不好。这个是从日后的使用提出的建议,以免日后数据多了,运算复杂了,再改表,就等于所有工作重新做了。
如果想尝试一下如何编程实现数字与文本的判断,我给出以下两个思路:
思路1:数字转变成文本。建立一个表,将数字与起止年份对应起来
年份 起止年份
1
【0-3年】
2
【0-3年】
3
【0-3年】
4
【4-7年】
这样,就实现了数字到文本的转换,然后文本和文本直接比较一致性就可以了。
思路2:文本转变成数字。用val()、left()、right()函数,将文本\"【0-3年】\"提取出两个字段\"起始年\"和\"终止年\",然后按照之前所述进行运算。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行