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


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

主题:跨表统计的问题?

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
跨表统计的问题?  发帖心情 Post By:2017/10/16 13:27:00 [只看该作者]

如图如代码,以前我的表中没有“部门”这一列,代码如下:

If e.DataCol.name = "年度" OrElse e.DataCol.name = "设计师" Then
    If e.DataRow.Isnull("年度") = False AndAlso e.DataRow.Isnull("设计师") = False Then
        Dim filter As String = "设计师 = '" & e.DataRow("设计师") & "'"
        For i As Integer = 1 To 12
            Dim d As Date = new Date(val(e.DataRow("年度")), i, 1)
            Dim sum As Integer = DataTables("峰和设计部").compute("sum(签单金额)", filter & " and 事件日期 >= #" & d & "# and 事件日期 < #" & d.addmonths(1) & "#")
            e.DataRow("M" & i) = sum
        Next
    Else
        For i As Integer = 1 To 12
            e.DataRow("M" & i) = Nothing
        Next
    End If
End If

现在添加了“部门”列,原被统计表有“设计师”以及“业务员”两例,如何分开统计?
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20171016144310.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/10/16 14:47:49编辑过]

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


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

 加条件?

 

Dim filter As String = "设计师 = '" & e.DataRow("设计师") & "' and 部门 = '" & e.dataRow("部门") & "'"

 

 没看懂你问题,上传实例说明。


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
  发帖心情 Post By:2017/10/16 16:40:00 [只看该作者]

如案例,求“业务员”的跨表统计?之前的跨表统计保留。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:引用单元格内容.table

[此贴子已经被作者于2017/10/16 16:40:33编辑过]

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
  发帖心情 Post By:2017/10/16 16:57:00 [只看该作者]

案例中的代码为:
If e.DataCol.name = "年份" OrElse e.DataCol.name = "操作人" Then
    If e.DataRow.Isnull("年份") = False AndAlso e.DataRow.Isnull("操作人") = False Then
        Dim filter As String = "姓名 = '" & e.DataRow("操作人") & "'"
        For i As Integer = 1 To 12
            Dim d As Date = new Date(val(e.DataRow("年份")), i, 1)
            Dim sum As Integer = DataTables("表A").compute("sum(成交额)", filter & " and 成单日期 >= #" & d & "# and 成单日期 < #" & d.addmonths(1) & "#")
            e.DataRow("M" & i) = sum
        Next
    Else
        For i As Integer = 1 To 12
            e.DataRow("M" & i) = Nothing
        Next
    End If
End If

我想达到这样,
Dim filter As String = 如果“部门”为"设计部"则"姓名 = '" & e.DataRow("操作人") & "'" ,如果“部门”为"业务员"则"业务员 = '" & e.DataRow("操作人") & "'"
不知可否实现,求解?

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106129 积分:539756 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/16 21:20:00 [只看该作者]

        Dim filter As String
        If e.DataRow("部门") = "设计部"
            filter  = "姓名 = '" & e.DataRow("操作人") & "'"
        Else
            filter  = "业务员 = '" & e.DataRow("操作人") & "'"
        End If
[此贴子已经被作者于2017/10/16 21:24:28编辑过]

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
  发帖心情 Post By:2017/10/16 23:49:00 [只看该作者]

跪谢! 

 回到顶部