Compute

根据条件统计表中数据。

语法:

Compute(Expression, Filter)

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

在执行以下示例之前,请打开CaseStudy目录下的示例文件"统计演示.Table"。

示例一

计算总的销售数量和金额:

Dim Total As Integer
Dim
Amount As Double
With
DataTables("订单")
    Total = .Compute(
"Sum(数量)")
    Amount = .Compute(
"Sum(金额)")
End
With
Output.Show(
"数量:" & Total)
Output.Show(
"金额:" &
Amount)

示例二

计算产品PD01的销售数量:

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

示例三

统计雇员EP01成交的订购数量超过500的订单数:

Dim
cnt As Integer
cnt
= DataTables("订单").Compute("Count([客户])", "雇员 = 'EP01' And 数量 > 500")
Output
.Show("订单数:" & cnt)

示例四

计算每个客户的订购数量:

Dim dt As DataTable = DataTables("订单")
Dim
Total As Integer
Dim
Customers As List(Of String)
Customers = dt.GetValues(
"客户")
For Each
Customer As String In Customers
    Total = dt.Compute("Sum(数量)", "[客户] = '" & Customer & "'")
    Output
.Show(Customer & ":" & Total
)
Next

上述代码中,Filter参数分成了三部分,各部分用运算符&连接起来:

"[客户] = '" & Customer & "'"

如果客户名称为CS01,那么三部分组合后,Filter参数就等于:

"[客户] = 'CS01'"

通过代码动态合成条件表达式,是一种基本的技能,大家务必要掌握。

参考:GetValues


本页地址:http://www.foxtable.com/webhelp/topics/0393.htm