以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]数据统计  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=76021)

--  作者:kaiyu
--  发布时间:2015/10/20 9:57:00
--  [求助]数据统计

现在有一个人事表,有入厂日期和离职日期两列,我想统计每个部门年月的在职总人数,用年月做列标题,用部门做行标题。

如果只做一个月还可以,但要把把它按入厂日期生成年月去统计就不会做了。


--  作者:大红袍
--  发布时间:2015/10/20 9:59:00
--  

直接用交叉统计

 

http://www.foxtable.com/help/topics/0165.htm

 


--  作者:kaiyu
--  发布时间:2015/10/20 11:24:00
--  

这个是统计当月的入职人数,我想要的是它的在职人数

 部门     201501 201502

  A部门     60         50

这个人数要统计这个月的最后一天前入厂的并在这个月还没有离职的人员总数。


--  作者:大红袍
--  发布时间:2015/10/20 11:34:00
--  
上传例子。
--  作者:kaiyu
--  发布时间:2015/10/23 11:33:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:每月在职人数统计.foxdb

我要做成部门在职人数按月统计表这个效果,比如在要统计C车间9月份的在职人数条件:

入厂日期 小于10月1号 and ( 离职日期 是空 or 离职日期大于9月30号) and 部门 等于 C车间


--  作者:大红袍
--  发布时间:2015/10/23 11:50:00
--  
Dim t1 As Table = Tables("部门在职人数按月统计表")
Dim t2 As Table = Tables("人事表")
For Each r As Row In t1.Rows
    For Each c As Col In t1.Cols
        If c.Caption Like "*月" Then
            Dim d As Date = c.Caption.Replace("_", "-").replace("月", "-01")
            d = d.AddMonths(1)
            r(c.name) = t2.Compute("count(编号)", "部门 = \'" & r("部门车间") & "\' and 入厂日期 < #" & d & "# and (离职日期 is null or 离职日期 >= #" & d & "#)")
        End If
    Next
Next