以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]A表表达式列“现任职级”和“现任职级时间”数据如何导入B表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148238)

--  作者:bgn
--  发布时间:2020/4/2 22:00:00
--  [求助]A表表达式列“现任职级”和“现任职级时间”数据如何导入B表
我建了一个“任职情况表”(表A),输入了历次职务晋升及晋升时间情况,并利用表达式求得了“现任职级”和“现任职级任职时间”两列的值。
有两个问题请教老师:1.表A利用表达式求“现任职级”和“现任职级任职时间”两列的值的方法对吗?是不是有更简单的方法?
                            2.我想把表A中求得的“现任职级”和“现任职级任职时间”两列的值导入表B中,因查询表不能列出表达式列,所以只能建新表表B,那么如何导入呢?用代码的话,在哪个事件内,写入怎样的代码?因为是初学,问的细些,谢谢了。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:任职情况表.zip


[此贴子已经被作者于2020/4/2 22:05:41编辑过]

--  作者:有点蓝
--  发布时间:2020/4/2 22:20:00
--  
没看懂这种表结构表示的意思。

职级02、职级03这些表达式列是做什么用的?
“现任职级”的计算规则是什么?
IsNull([职级1],[职级1])这里使用IsNull没有任何用处,直接使用“[职级1]”就可以了。但是职级02等于职级1的作用是什么?

如果是我,会设计这种任职情况表,按行记录,只需要查询时间最大的记录就是最新的职级了

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


--  作者:bgn
--  发布时间:2020/4/2 23:44:00
--  
我刚学,表结构可能不合理,函数用的也可能不对,不好意思,谢谢指点。
我在“职级02”、“职级03”列用函数lsNull([职级1],[职级1)的意思是,如果“职级1”列数据输入为“科员”,则“职级02”列数据为“科员”,如果“职级1”列没输入职务,则“职级02”列为空;同样,如果“职级2”列数据输入为“副主任科员”,则“职级03”列数据为“副主任科员”,如果“职级2”列没输入职务,则“职级03”列为“职级02”列数据仍为“科员”,以此类推到现任职务。隐藏“职级02”、“职级03”等列后也可以直观地看到各个职务及任职时间。
老师设计的“任职情况表”,我在使用Access时用过这样设计的表,交叉查询得出现任职务及任职时间。
在foxtable中,老师设计的“任职情况表”,如果每个人的最大时间的记录都不一样,怎么得出最新职务呢?用什么方法算出每个人的最大时间啊?

--  作者:有点蓝
--  发布时间:2020/4/3 9:22:00
--  
1、那么职级02完全没有不要使用IsNull([职级1],[职级1]),直接使用“[职级1]”就可以了。
2、参考:http://www.foxtable.com/webhelp/topics/0158.htm,做分组统计,统计类型取最大值即可

--  作者:bgn
--  发布时间:2020/4/3 20:23:00
--  
不是只有数值型的列才能进行分组统计吗?任职情况表里没有数值列啊!
--  作者:有点蓝
--  发布时间:2020/4/5 20:40:00
--  
嗯,是的。

可以改为使用sql分组统计,比如
select * from {任职情况表} as a inner join (select 姓名,max(入职时间) as 入职时间 from {任职情况表} group by 姓名) as b on a.姓名 =b.姓名 where a.入职时间 =b.入职时间