Foxtable(狐表)用户栏目专家坐堂 → 统计不重复值求助


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

主题:统计不重复值求助

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


加好友 发短信
等级:一尾狐 帖子:428 积分:4635 威望:0 精华:0 注册:2015/11/23 21:29:00
统计不重复值求助  发帖心情 Post By:2016/4/26 9:31:00 [只看该作者]


此主题相关图片如下:qq图片20160426092013.png
按此在新窗口浏览图片

此主题相关图片如下:qq图片20160426092046.png
按此在新窗口浏览图片

Select Case e.DataCol.Name
    Case "生产日期","部门名称","操作员"
        e.DataRow("岗位系数合计") = DataTables("生产日报").sqlCompute("Sum(岗位系数)","[部门名称] = '" & e.DataRow("部门名称") & "'and [生产日期] = #" & e.DataRow("生产日期") & "# ")
End Select

老师好:我想要统计相同日期,相同操作员只统计不重复值;

如上图:我想要的是操作员,张三+李四不重复的;1.2+1=2.2;而不是全部统计,这应该怎么做??先谢了!!


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/26 9:47:00 [只看该作者]

Dim sum As Double = 0
For Each ary() As String In DataTables("生产日报").SQLGetValues("操作员|岗位系数", "[部门名称] = '" & e.DataRow("部门名称") & "' and [生产日期] = #" & e.DataRow("生产日期") & "# ")
    sum += val(ary(1))
Next
e.DataRow("岗位系数合计") = sum
[此贴子已经被作者于2016/4/26 9:46:51编辑过]

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


加好友 发短信
等级:一尾狐 帖子:428 积分:4635 威望:0 精华:0 注册:2015/11/23 21:29:00
  发帖心情 Post By:2016/4/26 10:06:00 [只看该作者]

好了,多谢!!


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


加好友 发短信
等级:一尾狐 帖子:428 积分:4635 威望:0 精华:0 注册:2015/11/23 21:29:00
  发帖心情 Post By:2016/4/26 11:31:00 [只看该作者]

老师好:

下面代码只能统计本年本月,不重复操作员的数据,能不能再加上一个条件,

统计本年本月,不重复的(日期+操作员)也就是在相同的日期,相同的操作员情况下,只能统计一次。

举例:

2016年4月25日  张三      生产A产品   共出勤12H

2016年4月25日  张三      生产B产品   共出勤12H

那么出勤只需统计一次,12H

我不知道我有没有说明白,需不需要发个图片上来。

 

Dim sum As Double = 0
For Each ary() As String In DataTables("厚边印刷实绩日报").SQLGetValues("操作员|出勤系数", "[部门名称] = '" & e.DataRow("部门名称") & "' and [年份] = '" & e.DataRow("年份") & "' And [月份] = '" & e.DataRow("月份") & "'")
    sum += val(ary(1))
Next
e.DataRow("出勤系数合计") = sum


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/26 11:33:00 [只看该作者]

Dim sum As Double = 0
For Each ary() As String In DataTables("厚边印刷实绩日报").SQLGetValues("日期|操作员|出勤系数", "[部门名称] = '" & e.DataRow("部门名称") & "' and [年份] = '" & e.DataRow("年份") & "' And [月份] = '" & e.DataRow("月份") & "'")
    sum += val(ary(2))
Next
e.DataRow("出勤系数合计") = sum

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


加好友 发短信
等级:一尾狐 帖子:428 积分:4635 威望:0 精华:0 注册:2015/11/23 21:29:00
  发帖心情 Post By:2016/4/26 11:40:00 [只看该作者]


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

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


正确的结果是:2.3+1.5+1.0+2.76+2.3=9.86;不是7.59


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


加好友 发短信
等级:一尾狐 帖子:428 积分:4635 威望:0 精华:0 注册:2015/11/23 21:29:00
  发帖心情 Post By:2016/4/26 11:42:00 [只看该作者]

上面写错了,是:2.3+1.53+1.0+2.76+2.3


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/26 11:45:00 [只看该作者]

 目测代码没有问题,上传实例测试。

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


加好友 发短信
等级:一尾狐 帖子:428 积分:4635 威望:0 精华:0 注册:2015/11/23 21:29:00
  发帖心情 Post By:2016/4/26 13:42:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:欧德雅厚边印刷部绩效管理系统软件- 开发版修正.rar


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/26 14:24:00 [只看该作者]

下面的代码没问题,你的数据【2016-03-17  匡志新】没有填写部门名称自然不计算啊。要不你就不要根据部门名称计算,红色代码去掉

 

Select Case e.DataCol.name
    Case "年份","月份","部门名称"
        Dim sum As Double = 0
        For Each ary() As String In DataTables("厚边印刷实绩日报").SQLGetValues("生产日期|操作员|出勤系数", "[部门名称] = '" & e.DataRow("部门名称") & "' and [年份] = '" & e.DataRow("年份") & "' And [月份] = '" & e.DataRow("月份") & "'")
            msgbox(ary(0) & ary(1) & ary(2))
            sum += val(ary(2))
        Next
        e.DataRow("出勤系数合计") = sum
End Select


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