Foxtable(狐表)用户栏目专家坐堂 → [求助]新手求助多值字段的统计问题


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

主题:[求助]新手求助多值字段的统计问题

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/4 15:29:00 [显示全部帖子]

呵呵,你想在哪里统计? 怎么统计? 金额平分吗?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/4 19:32:00 [显示全部帖子]

如果要汇总的话,还是分开录入吧,否则统计起来挺麻烦的。

如果不愿意分开,可以用下面的代码统计:

 

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("操作者", Gettype(String), 32)
dtb.AddDef("金额", Gettype(Double))
dtb.Build()
For Each dr1 As DataRow In DataTables("操作者").DataRows
    Dim dr2 As DataRow = DataTables("统计").AddNew
    Dim Sum As Double = 0
    dr2("操作者") = dr1("操作者")
    dr2("金额")= DataTables("工资表").Compute("Sum(金额)","操作者 Like '*" & dr1("操作者") & "*'")
Next


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/4 21:40:00 [显示全部帖子]

以下是引用agame在2011-4-4 20:30:00的发言:

太谢谢啦,我知道怎么使用啦,能详细的解释一下每条语句的内容吗? 还有能不能在统计的时候,可以按日期分组啊,就是每个人,每一天的合计,还需要加什么代码,加在什么地方?

 

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("操作者", Gettype(String), 32)
dtb.AddDef("金额", Gettype(Double))
dtb.Build()

这几句是新建表和列的数据类型吧

[此贴子已经被作者于2011-4-4 20:53:29编辑过]

 

呵呵,先不要着急,先看帮助,很快可以掌握。

关于这段代码用于建立统计表,帮助有讲述的:

 

http://help.foxtable.com/topics/0679.htm

 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/5 7:49:00 [显示全部帖子]

好的。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/6 9:25:00 [显示全部帖子]

相同小号和日期的记录,是不是只有一行?

因为这决定编码的方式,所以先问一下。

 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/6 9:39:00 [显示全部帖子]

呵呵,这个我知道,不过我问的是原始数据表,也就是工资表的相同小号和日期的记录,是不是只有一行?
[此贴子已经被作者于2011-4-6 9:39:12编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/6 9:51:00 [显示全部帖子]

14楼和15楼有点矛盾,如果小号不重复的话,那么工资表就不应该有相同小号和日期的行啊?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/6 9:55:00 [显示全部帖子]

明白,我问的就是原始录入的时候是否有重复。

稍等,我帮你写一下代码。

 

图片点击可在新窗口打开查看


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/6 10:04:00 [显示全部帖子]

看这个:

 

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("小号", Gettype(String), 32)
dtb.AddDef("日期", Gettype(Date))
dtb.AddDef("操作者", Gettype(String), 32)
dtb.AddDef("金额", Gettype(Double))
dtb.Build()
For Each dr1 As DataRow In DataTables("工资表").DataRows
    If dr1.Isnull("操作者") Then
        Continue For
    End If
    Dim nms() As String = dr1("操作者").Split(",")
    For Each nm As String In nms
        Dim dr2 As DataRow =DataTables("统计").AddNew
        dr2("小号") = dr1("小号")
        dr2("日期") = dr1("日期")
        dr2("金额") = dr1("金额")
        dr2("操作者") = nm
    Next
Next

一般来说,提问的时候,原始数据应该多输入一点,这样便于其他人理解。


 回到顶部