以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  SQLGroupTableBuilder跨年统计问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=126041)

--  作者:douglas738888
--  发布时间:2018/10/12 16:15:00
--  SQLGroupTableBuilder跨年统计问题

请教老师,下面代码时间分组,如果要统计跨年的数据,条件怎样写

比如  某人2005年3月入职,2006年5月离职,得到的2005年离职数据是错误的,因为逻辑列统计没有时间条件,只是count的数据

        这里代码设定的只是一个入职时间,如果还要根据离职时间和离职逻辑列一起判断,代码该怎样写?

 

Dim b1 As New SQLGroupTableBuilder("统计表01","员工档案")
    b1.C
    b1.Groups.AddDef("入职时间", DateGroupEnum.Year, "年度")
    b1.Totals.AddDef("员工编号",AggregateEnum.Count,"用工总人数")
    b1.Totals.AddExp("性别_男","case when 性别 Like \'%男%\' then 1 else 0 end","性别_男")
    b1.Totals.AddExp("性别_女","case when 性别 Like \'%女%\' then 1 else 0 end","性别_女")
    b1.Totals.AddExp("在职","在职*1","在职人数",AggregateEnum.Sum)
    b1.Totals.AddExp("离职","离职*1","离职人数",AggregateEnum.Sum)
    
    Tables("统计_Table1").DataSource = b1.BuildDataSource()


--  作者:有点甜
--  发布时间:2018/10/12 16:24:00
--  
你的表结构是怎样的?需要统计出怎样的结果?截图或实例发出来。
--  作者:有点甜
--  发布时间:2018/10/12 16:26:00
--  

入职数和离职数,要分别统计的,最后组合起来的。

 

http://www.foxtable.com/webhelp/scr/2305.htm

 


--  作者:douglas738888
--  发布时间:2018/10/12 16:29:00
--  


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

 

这个例子,是统计生成的数据表,正确数据是2005年离职人数应该是1,2006年离职人数应该是1,代码是1楼的


--  作者:有点甜
--  发布时间:2018/10/12 16:35:00
--  

入职数和离职数,要分别统计的,最后组合起来的。

 

http://www.foxtable.com/webhelp/scr/2305.htm

 

不会做的话,实例发上来测试。


--  作者:douglas738888
--  发布时间:2018/10/12 17:23:00
--  

老师,组合统计我看了,现在是一个表里面的统计,无关联项,GROUP又只能是一个,怎么关联组合

用的是SQLSERVER数据库,目前无法给实例

 

表1 生成在职数据

b1.Groups.AddDef("入职时间", DateGroupEnum.Year, "年度")

b1.Totals.AddExp("在职","在职*1","在职人数",AggregateEnum.Sum)

表2生成离职数据

b2.Groups.AddDef("离职时间", DateGroupEnum.Year, "年度")

b2Totals.AddExp("离职","离职*1","离职人数",AggregateEnum.Sum)

 

表3  无法关联

[此贴子已经被作者于2018/10/12 17:23:38编辑过]

--  作者:有点甜
--  发布时间:2018/10/12 17:26:00
--  
用年度列关联即可
--  作者:有点甜
--  发布时间:2018/10/12 17:27:00
--  

多列关联,参考

 

http://www.foxtable.com/webhelp/scr/2392.htm

 


--  作者:douglas738888
--  发布时间:2018/10/12 17:33:00
--  
可以了,用年度来关联,谢谢老师的指导
--  作者:douglas738888
--  发布时间:2018/10/13 13:58:00
--  

请教老师,在统计表生成后,增加一列环比,但环比列无数据,output.show 显示的是0          无任何错误提示,  代码哪里错了?

 

DataTables("统计表01").DataCols.Add ("环比",Gettype(Double),"")
Dim drs As List(of DataRow)
drs = DataTables("统计表01").Select("","年度")
For i As Integer = 1 To drs.count -1
    If drs(i)("年度") = drs(i-1)("年度") Then
        drs(i)("环比") = (drs(i)("离职1") - drs(i-1)("离职1")) / drs(i-1)("离职1")
    End If
output.show(drs(i)("环比"))
Next