以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]跨表计算的问题?谢谢!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149974)

--  作者:manyifuwu
--  发布时间:2020/5/17 10:21:00
--  [求助]跨表计算的问题?谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:计算 (2).table


希望:通过派单表,在统计表里:选择年月,员工:    计算出,已交单,对应的:金额,和单数。
[此贴子已经被作者于2020/5/17 23:34:15编辑过]

--  作者:y2287958
--  发布时间:2020/5/17 12:03:00
--  
单数的计算规则是什么
--  作者:manyifuwu
--  发布时间:2020/5/17 14:09:00
--  
1、参与就算一单吧,如:2020年5月17日:张三和李四共同完成一单,单数:每人算一单。


--  作者:y2287958
--  发布时间:2020/5/17 16:50:00
--  
Dim zd1,zd2 As new Dictionary(of String,Double)
For Each dr As DataRow In DataTables("派单").Select("交单=true")
    For Each s As String In dr("员工").split(",")
        Dim ss As String = dr("年月") & "," & s
        If zd1.ContainsKey(ss) Then zd1(ss) += dr("人均值") Else zd1.add(ss,dr("人均值"))
        If zd2.ContainsKey(ss) Then zd2(ss) += 1 Else zd2.add(ss,1)
    Next
Next
For Each k As String In zd1.Keys
    Output.Show(k & "," & zd1(k) & "," & zd2(k))
Next

--  作者:manyifuwu
--  发布时间:2020/5/17 23:08:00
--  
好像没有效果。是我没有放对代码位置吗?

[此贴子已经被作者于2020/5/17 23:08:48编辑过]

--  作者:manyifuwu
--  发布时间:2020/5/17 23:10:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:6.png
图片点击可在新窗口打开查看
我可能没有表述清楚。
[此贴子已经被作者于2020/5/17 23:10:03编辑过]

--  作者:y2287958
--  发布时间:2020/5/18 8:03:00
--  
代码得出的结果是一样的
2020-06,李四,55,2
2020-06,张三,50,1
2020-06,陈六,5,1

[此贴子已经被作者于2020/5/18 8:04:26编辑过]

--  作者:有点蓝
--  发布时间:2020/5/18 8:50:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:计算.table


--  作者:manyifuwu
--  发布时间:2020/5/18 10:02:00
--  
非常感谢!金额    列   正确了,但单数还是不能统计。
--  作者:有点蓝
--  发布时间:2020/5/18 10:19:00
--  
同样的用法呀,单数改为count计算即可