Foxtable(狐表)用户栏目专家坐堂 → 如何在分组、交叉统计中,统计某一产品不重复的雇员数量


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

主题:如何在分组、交叉统计中,统计某一产品不重复的雇员数量

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


加好友 发短信
等级:幼狐 帖子:105 积分:1193 威望:0 精华:0 注册:2017/6/10 10:52:00
如何在分组、交叉统计中,统计某一产品不重复的雇员数量  发帖心情 Post By:2021/5/19 14:45:00 [只看该作者]

想对订单表中的产品进行分组或交叉统计时,对雇员进行不重复的统计,好某一产品有几个雇员进行了下单
Dim g As New GroupTableBuilder("统计表1", DataTables("订单"))
g.Groups.AddDef("产品")
g.Totals.AddDef("数量")
g.Totals.AddDef("金额")
g.Totals.AddDef("雇员", AggregateEnum.Count)
g.Build()
MainTable = Tables("统计表1")
我的代码只能统计记录数,能否给下代码
[此贴子已经被作者于2021/5/19 14:46:27编辑过]

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/20 8:29:00 [只看该作者]

Dim g As New GroupTableBuilder("统计表1", DataTables("订单"))
g.Groups.AddDef("产品")
g.Totals.AddDef("数量")
g.Totals.AddDef("金额")
g.Build()
MainTable = Tables("统计表1")
DataTables("统计表1").DataCols.Add("雇员",Gettype(Integer))
For Each r As Row In Tables("统计表1").Rows
    r("雇员") = DataTables("订单").GetValues("雇员","产品='" & r("产品") & "'").count
Next

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


加好友 发短信
等级:幼狐 帖子:105 积分:1193 威望:0 精华:0 注册:2017/6/10 10:52:00
  发帖心情 Post By:2021/5/20 11:00:00 [只看该作者]

在交叉统计中,我的代码如下,但是报错。
Dim g As New CrossTableBuilder("统计表1", DataTables("订单"))
g.HGroups.AddDef("产品")
g.VGroups.AddDef("客户", "客户_{0}")
g.Totals.AddDef("数量", "数量")
g.Build()
MainTable = Tables("统计表1")
DataTables("统计表1").DataCols.Add("客户_雇员数量",Gettype(Integer))
For Each r As Row In Tables("统计表1").Rows
    r("客户_雇员数量") = DataTables("订单").GetValues("雇员","产品='" & r("产品") & "'" And "客户='" & r("客户") & "'").count
Next


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

我想要的效果如下

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

能帮我看下哪里错了吗?

[此贴子已经被作者于2021/5/20 11:05:40编辑过]

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/20 11:25:00 [只看该作者]

打开统计表表结构看看就知道了,界面显示的是标题,不是列名,列名不正确:http://www.foxtable.com/webhelp/topics/0193.htm

Dim g As New CrossTableBuilder("统计表1", DataTables("订单"))
g.HGroups.AddDef("产品")
g.VGroups.AddDef("客户", "客户_{0}")
g.Totals.AddDef("数量", "数量")
g.Totals.AddDef("雇员",AggregateEnum.Count, "雇员")
g.Build()
MainTable = Tables("统计表1")
Dim dict As new Dictionary(of String, String)
For Each c As Col In Tables("统计表1").Cols
    If c.Caption Like "*雇员" Then
        dict.Add(c.Name,c.Caption.Split("_")(1))
    End If
Next

For Each r As Row In Tables("统计表1").Rows
    For Each key As String In dict.Keys
        r(key) = DataTables("订单").GetValues("雇员","产品='" & r("产品") & "' And 客户='" & dict(key) & "'").count
    Next
Next


 回到顶部