设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[Access本身] access 多记录 唯一值的确定

[复制链接]
跳转到指定楼层
1#
发表于 2012-5-9 11:25:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假如有这样一个表,例如:
姓名    学历    是否最高学历   毕业时间
王五    中专    false
王五    大专    false
王五    本科    true
王五    高中    false

记录中“姓名”相同,只有一个,记录数则不一定几个。请问:如何保证“是否最高学历”字段只有一个“true”?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-5-9 19:35:03 | 只看该作者
1、删除最高学历字段;
2、建立一个学历表,结构为:学历ID(主键,int类型),学历。在该表中写入数据为:
学历ID        学历
0        文盲
1        小学
2        初中
3        高中
4        中专
5        大专
6        大本
7        硕士
8        博士
3、在原表中加入学历ID(外键),并在学历ID的属性中设置查阅,数据源为学历表,2字段,字段长度为0cm,1cm。

4、写最高学历查询如下:
select 姓名,max(学历ID) as 学历,max(毕业时间) as 毕业时间
from 阁下的表名称
ground By 姓名

5、如果对以上处理不能理解的话,可以在现有数据表的基础上,写如下查询:
select 姓名,dlookup("学历","阁下的数据表名称","毕业时间=#" & 最高学历毕业时间 & "#"),max(毕业时间) as 最高学历毕业时间
from 阁下的表名称
ground By 姓名
3#
 楼主| 发表于 2012-5-9 15:20:48 | 只看该作者
谢谢2位大师的指点。
或许还要再改进改进!
可能只有靠检查更新的办法实现了。
4#
发表于 2012-5-9 12:29:30 | 只看该作者
把姓名和是否最高学历同时设置为主键
5#
发表于 2012-5-9 12:32:09 | 只看该作者
在更新【是否最高学历】到true前,检查一下原有记录中王五的【是否最高学历】的总计值是否等于0,如果等于0则更新,反之则提示不能更新
6#
发表于 2012-5-9 12:34:24 | 只看该作者
另外,毕业时间也是一个可以利用的字段。通常不会有最高学历的毕业时间会小于其他学历的毕业时间。
例如,博士后都毕业了,不可能再去读本科
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 03:40 , Processed in 0.088004 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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