Foxtable(狐表)用户栏目专家坐堂 → 怎样对子表中满足一定条件的数据求和?


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

主题:怎样对子表中满足一定条件的数据求和?

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


加好友 发短信
等级:童狐 帖子:230 积分:2073 威望:0 精华:0 注册:2011/4/22 16:41:00
怎样对子表中满足一定条件的数据求和?  发帖心情 Post By:2011/6/15 17:02:00 [只看该作者]

怎样对子表中满足一定条件的数据求和?

也就是怎样为表达式  类似于 Sum(Child(po).金额) 添加条件?

 


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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2011/6/15 17:04:00 [只看该作者]

Compute

根据指定的表达式和条件进行计算,语法:

Compute(Expression, Filter)

语法:

Compute(Expression, Filter)

Expression: 要计算的表达式,使用聚合函数进行统计。
Filter:    可选参数,用于设置计算条件,请参考表达式的运算符和函数条件表达式

例如,我们要统计订单表中产品PD01的销售金额,代码如下:

Dim Sum As Double
Sum = Tables("订单").Compute("Sum(数量)", "产品 = 'PD01'")
Output.Show(Sum)

还记得吗? DataTable也有Compute方法,两者功能一样,但是DataTable的Compute方法统计所有行,而Table的Compute方法只会统计Table中可见的行。
所以如果没有进行筛选,那么两者的统计结果是一样的,如果进行了筛选,就需要根据具体情况选用了。

例如你在订单表中筛选出了客户CS01的所有行,那么:

Dim Sum1 As Double = Tables("订单").Compute("Sum(数量)")
Dim
Sum2 As Double = DataTables("订单").Compute("Sum(数量)")

Sum1将等于客户CS01的订购数量,而Sum2将等于所有客户的订购数量。

同样:

Dim Sum1 As Double = Tables("订单").Compute("Sum(数量)", "产品 = 'PD01'")
Dim
Sum2 As Double = DataTables("订单").Compute("Sum(数量)", "产品 = 'PD01'")

Sum1将等于客户CS01订购产品PD01的数量,Sum2将等于所有客户订购产品PD01的数量。


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


加好友 发短信
等级:童狐 帖子:230 积分:2073 威望:0 精华:0 注册:2011/4/22 16:41:00
  发帖心情 Post By:2011/6/15 17:08:00 [只看该作者]

我是想设置在表达式列的公式里呀。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/15 17:13:00 [只看该作者]

表达式列没有办法设置这种条件,必须用代码。

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


加好友 发短信
等级:童狐 帖子:230 积分:2073 威望:0 精华:0 注册:2011/4/22 16:41:00
  发帖心情 Post By:2011/6/15 17:16:00 [只看该作者]

哦。明了,谢谢!

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/6/16 8:16:00 [只看该作者]

办法是关联的列多一点:

比如说计算的是C列,那么关联A列和B列,只要是表A和表B的A列和B列的数据一样,那么计算的精度就会上去,同代码的条件是一样的道理.

 回到顶部