Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
怎样对子表中满足一定条件的数据求和?
也就是怎样为表达式 类似于 Sum(Child(po).金额) 添加条件?
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的数量。