Foxtable(狐表)用户栏目专家坐堂 → 跨表统计需要多个filter,公式如何表达?


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

主题:跨表统计需要多个filter,公式如何表达?

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


加好友 发短信
等级:二尾狐 帖子:519 积分:5769 威望:0 精华:0 注册:2008/9/7 20:15:00
跨表统计需要多个filter,公式如何表达?  发帖心情 Post By:2022/5/17 9:52:00 [只看该作者]



If e.DataCol.Name = "产品" Then
    Dim
Filter As String = "[产品] = '" & e.NewValue & "'"
    e.
DataRow("数量") = DataTables("订单").Compute("Sum(数量)", Filter)
    e.
DataRow("金额") = DataTables("订单").Compute("Sum(金额)", Filter)
End
If


这个是帮助文件中的例子,现在的问题是想即统计产品列,还有客户列,再加上雇员列,三列条件,这个filter如果来写?





谢谢老师!

[此贴子已经被作者于2022/5/17 9:55:26编辑过]

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/17 10:04:00 [只看该作者]

使用多个变量,比如filter、filter1、filter2、.............

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


加好友 发短信
等级:二尾狐 帖子:519 积分:5769 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2022/5/17 10:45:00 [只看该作者]

If e.DataCol.Name = "录取年度" Then 
    Dim Filter As String = "[原文理科] = '" & e.NewValue & "'"
    Dim Filter1 As String = "[录取批次] = '" & e.NewValue & "'"
    Dim Filter2 As String = "[录取年度] = '" & e.NewValue & "'"
    e.DataRow("录取计划") = DataTables("录取计划").Compute("Sum(计划数)", Filter)
    e.DataRow("计算985计划") = DataTables("录取计划").Compute("Sum(计划数)", Filter) 
End If

这样写的,没有计算结果。不知道哪里错了,老师看一下!
只有设置 录取年度时,才有计算结果。

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


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

都是给同一个单元格赋值的,多个条件的意义是什么。是多个条件合并到一起同时符合?还是多个条件分别统计后加到一起?

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


加好友 发短信
等级:二尾狐 帖子:519 积分:5769 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2022/5/17 13:35:00 [只看该作者]

是多个条件合并到一起同时符合

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/17 14:05:00 [只看该作者]


If e.DataCol.Name = "录取年度" Then 
    Dim Filter As String = "[原文理科] = '" & e.NewValue & "' and [录取批次] = '" & e.NewValue & "' and [录取年度] = '" & e.NewValue & "'"
    e.DataRow("录取计划") = DataTables("录取计划").Compute("Sum(计划数)", Filter)
    e.DataRow("计算985计划") = DataTables("录取计划").Compute("Sum(计划数)", Filter) 
End If

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


加好友 发短信
等级:二尾狐 帖子:519 积分:5769 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2022/5/17 14:26:00 [只看该作者]

老师出现这个问题,您看一下是什么原因?
图片点击可在新窗口打开查看此主题相关图片如下:777.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/17 14:49:00 [只看该作者]

认真看看帮助:http://www.foxtable.com/webhelp/topics/1284.htm

表达式中的日期用符号#括起来,数值则不需要任何符号括起来,这些和代码中的格式是一样的,唯一不同的是字符串用单引号括起来。

例如:

Tables("订单").Filter = "[产品] = 'PD01'"  '字符用单引号括起来
Tables("订单").Filter = "[日期] = #3/17/1999#"  '日期用#括起来
Tables("订单").Filter = "[折扣] = 0.1"  '数值直接使用


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


加好友 发短信
等级:二尾狐 帖子:519 积分:5769 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2022/5/17 15:06:00 [只看该作者]

谢谢老师,已经修改好了。!!

 回到顶部