以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]散乱的人员经历(交叉的起止时间和部门)如何设置汇总统计 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=81579) |
||||
-- 作者:yejifenghan -- 发布时间:2016/3/1 16:05:00 -- [求助]散乱的人员经历(交叉的起止时间和部门)如何设置汇总统计 按月填的表,有:填报年月|人员编号|人员名称|项目编号|项目名称|在岗开始年月|在岗结束年月|岗位_岗位|岗位_专业|岗位_任职描述,这些数据,如何把一个人N条任职记录按项目以及岗位进行统计(由于每月填报,所以同一个人在同一个项目的起止时间有可能不同并重叠,重叠部分要合并;在一个连续时间段内,同一个人在同一个项目任不同岗位,则统计出不同岗位每条岗位一条记录),最终是统计出同一个人的任职履历,即张三11年-12年在项目A,12年-13年在项目B这个形式的数据。查看帮助好多遍,还是搞不懂分组和交叉都不行。求助。感谢! |
||||
-- 作者:yejifenghan -- 发布时间:2016/3/1 16:07:00 --
|
||||
-- 作者:大红袍 -- 发布时间:2016/3/1 16:37:00 -- Dim dt1 As DataTable = DataTables("经历表") Dim dt2 As DataTable = DataTables("想要的效果表") dt2.DataRows.Clear Dim gls As List(Of String()) = dt1.GetValues("人员编号|项目名称|岗位信息_岗位") For Each ary As String() In gls Dim filter As String = "人员编号 = \'" & ary(0) & "\' and 项目名称 = \'" & ary(1) & "\' and 岗位信息_岗位 = \'" & ary(2) & "\'" Dim fdr As DataRow = dt1.Find(filter) Dim ndr As DataRow = dt2.AddNew ndr("人员编号") = fdr("人员编号") ndr("人员名称") = fdr("人员名称") ndr("项目名称") = fdr("项目名称") ndr("岗位_岗位") = fdr("岗位信息_岗位") ndr("岗位_专业") = fdr("岗位信息_专业") ndr("岗位_任职描述") = fdr("岗位信息_任职描述") ndr("开始年月") = dt1.Compute("min(开始年月)", filter) ndr("结束年月") = dt1.Compute("max(结束年月)", filter) Next |
||||
-- 作者:yejifenghan -- 发布时间:2016/3/1 16:49:00 -- 感谢 谢谢大红袍老师。成了! |