Office中国论坛/Access中国论坛
标题:
access 多记录 唯一值的确定
[打印本页]
作者:
l296233
时间:
2012-5-9 11:25
标题:
access 多记录 唯一值的确定
假如有这样一个表,例如:
姓名 学历 是否最高学历 毕业时间
王五 中专 false
王五 大专 false
王五 本科 true
王五 高中 false
记录中“姓名”相同,只有一个,记录数则不一定几个。请问:如何保证“是否最高学历”字段只有一个“true”?
作者:
Henry D. Sy
时间:
2012-5-9 12:29
把姓名和是否最高学历同时设置为主键
作者:
aslxt
时间:
2012-5-9 12:32
在更新【是否最高学历】到true前,检查一下原有记录中王五的【是否最高学历】的总计值是否等于0,如果等于0则更新,反之则提示不能更新
作者:
aslxt
时间:
2012-5-9 12:34
另外,毕业时间也是一个可以利用的字段。通常不会有最高学历的毕业时间会小于其他学历的毕业时间。
例如,博士后都毕业了,不可能再去读本科
作者:
l296233
时间:
2012-5-9 15:20
谢谢2位大师的指点。
或许还要再改进改进!
可能只有靠检查更新的办法实现了。
作者:
todaynew
时间:
2012-5-9 19:35
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 姓名
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3