Foxtable(狐表)用户栏目专家坐堂 → SQLGroupTableBuilder跨年统计问题


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

主题:SQLGroupTableBuilder跨年统计问题

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
SQLGroupTableBuilder跨年统计问题  发帖心情 Post By:2018/10/12 16:15:00 [只看该作者]

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

比如  某人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()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/12 16:24:00 [只看该作者]

你的表结构是怎样的?需要统计出怎样的结果?截图或实例发出来。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/12 16:26:00 [只看该作者]

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

 

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

 


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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2018/10/12 16:29:00 [只看该作者]


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

 

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/12 16:35:00 [只看该作者]

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

 

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

 

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


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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/12 17:26:00 [只看该作者]

用年度列关联即可

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/12 17:27:00 [只看该作者]

多列关联,参考

 

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

 


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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2018/10/12 17:33:00 [只看该作者]

可以了,用年度来关联,谢谢老师的指导

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By: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


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