Foxtable(狐表)用户栏目专家坐堂 → 子表数据查询问题


  共有2492人关注过本帖树形打印复制链接

主题:子表数据查询问题

帅哥哟,离线,有人找我吗?
wyqwyq1981
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:723 威望:0 精华:0 注册:2019/2/2 22:29:00
子表数据查询问题  发帖心情 Post By:2020/2/21 16:28:00 [只看该作者]

人事信息数据库,父表是基本情况表,子表是学历表,一个人可能对应有多个学历,现在想查询出每天人的最高学历和原始学历,如何实现?

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
直接查询会把每个人的所有学历都列出来,这样不符合要求。
[此贴子已经被作者于2020/2/21 16:35:24编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/21 17:00:00 [只看该作者]

父表要放到左边,连接方式需要使用左连接。另外如果做分组处理。具体请上传实例说明

 回到顶部
帅哥哟,离线,有人找我吗?
wyqwyq1981
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:723 威望:0 精华:0 注册:2019/2/2 22:29:00
  发帖心情 Post By:2020/2/22 23:17:00 [只看该作者]

请问老师怎样上传实例呀,程序400M,传不上去呀

[此贴子已经被作者于2020/2/22 23:17:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2180 积分:13810 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2020/2/23 0:54:00 [只看该作者]

你指望计算机认识中文学历的高低?不现实吧,你首先要把学历按照从小到大编一个对照表,比如
编号 学历
1     小学 
2     初中 
3     高中 
4    中专 
5    大专 
6   本科 
7   硕士
8   博士
然后 才能分组查询  姓名 ,最低学历,最高学历  


 回到顶部
帅哥哟,离线,有人找我吗?
wyqwyq1981
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:723 威望:0 精华:0 注册:2019/2/2 22:29:00
  发帖心情 Post By:2020/2/23 9:28:00 [只看该作者]

应该可以吧,在ACCESS中就可以分组查询,查询子表的第一条记录first或最后一条记录last,因为每个人的学历录入时最先录入的就是原始学历,最后一条录入的就是最高的学历,在录入每个人的学历时遵循这个顺序就可以的。

 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2180 积分:13810 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2020/2/23 12:27:00 [只看该作者]

你考虑过增加,删除,修改学历后会发生什么事情吗?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/23 21:09:00 [只看该作者]

录入未必是按顺序的,比如录入到大专了,发现少录了高中,就补录,这时最后一条记录就可能是高中了,而不是大专。难道您会把所有记录删除,,重新按照顺序再录一遍?

上传程序不需要上传全部的,新建一个项目,导入相关表的部分测试数据(比如一两个人的全部关联数据),把这个新项目发上来即可

 回到顶部
帅哥哟,离线,有人找我吗?
wyqwyq1981
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:723 威望:0 精华:0 注册:2019/2/2 22:29:00
  发帖心情 Post By:2020/2/24 21:46:00 [只看该作者]

谢谢老师们的指点,我想建立一个能记录人员各方面详细信息的数据库,例如学历、职称等,主表为基本表存放一些人员基本信息,子表为其他详细信息,例如学历、职称、职务、家庭信息等,主表与子表均为一对多的关系,用人员编号关联,但发现查询或统计数据是有点麻烦。我建立了一个例子,请各位老师指点一下,
1、如何同时查询每个人的最高学历和最高职称
2、有时有特殊需求,需要查询出每个人的原始学历
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:人事管理系统例子.rar

[此贴子已经被作者于2020/2/24 21:49:14编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/24 22:49:00 [只看该作者]

如果要一次显示只能通过SQL处理,附件里新增看一个查询表
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip


如果是SqlServer数据库,SQL可以改为

Select a.人员编号,姓名,性别,政治面貌,学历 as 最高学历,专业,毕业院校,毕业日期,职称等级 as 最高职称等级,职称系列,获得资格时间 from {基本情况表} As a left join 
(Select a.人员编号,学历,专业,毕业院校,毕业日期 from {学历} As a Inner join (Select 人员编号,max(毕业日期) As 毕业日期 from {学历} group by 人员编号) As b on a.人员编号=b.人员编号 and a.毕业日期=b.毕业日期) As c on a.人员编号=c.人员编号
left join  (Select a.人员编号,职称等级,职称系列,获得资格时间 from {职称表} As a Inner join (Select 人员编号,max(获得资格时间) As 获得资格时间 from {职称表} group by 人员编号) As b on a.人员编号=b.人员编号 and a.获得资格时间=b.获得资格时间) As d on a.人员编号=d.人员编号

如果要查原始学历,把sql里的max改为min即可

 回到顶部
帅哥哟,离线,有人找我吗?
wyqwyq1981
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:723 威望:0 精华:0 注册:2019/2/2 22:29:00
  发帖心情 Post By:2020/2/28 19:44:00 [只看该作者]

老师帮忙看看语句哪里有问题?
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/2/28 19:43:51编辑过]

 回到顶部
总数 12 1 2 下一页