Previous topicNext topic
Help > 开发指南 > SanMuGrid平台编程 > 主要对象 > DataTableHelp > SQL处理 >
SQLCompute

SQLCompute用于计算后台根据指定的条件计算指定的内容。这个表达式可以使用聚合函数计算求和、计数、最大值、最小值等等。

语法:

SQLCompute(Expression,Filter)

参数说明

名称 说明
Expression 必填项,字符串类型,要计算的表达式,使用聚合函数进行统计。
Filter 可选项,字符串类型,用于设置计算的筛选条件,使用表达式筛选。跟本地筛选使用相同的语法。

针对上面这样的数据,我们可以统计以下信息。

Vb.Net
Dim tblMain As SmGrid = Proj.OpenedForms("订单统计测试").Grids("tblMain")
Dim objValue As Object=tblMain.DataTableHelp.SQLCompute("Count(产品)","产品='产品01'")
Proj.MsgDebug.Add("后台产品01的数量:{0}",objValue)
objValue=tblMain.DataTableHelp.SQLCompute("Count(产品)")
Proj.MsgDebug.Add("后台所有产品的数量:{0}",objValue)
objValue=tblMain.DataTableHelp.Compute("Count(产品)","产品='产品01'")
Proj.MsgDebug.Add("内存表中产品01的数量:{0}",objValue)
objValue=tblMain.DataTableHelp.Compute("Count(产品)")
Proj.MsgDebug.Add("内存表中所有产品的数量:{0}",objValue)
objValue=tblMain.DataTableHelp.Database.ExecuteScalar("Select Count(产品) from 订单信息 where 产品='产品01'")
Proj.MsgDebug.Add("SQL查询后台产品01的数量:{0}",objValue)
objValue=tblMain.DataTableHelp.Database.ExecuteScalar("Select Count(产品) from 订单信息")
Proj.MsgDebug.Add("SQL查询后台所有产品的数量:{0}",objValue)

'返回结果:后台产品01的数量:380
'返回结果:后台所有产品的数量:2003
'返回结果:内存表中产品01的数量:380
'返回结果:内存表中所有产品的数量:2000
'返回结果:SQL查询后台产品01的数量:380
'返回结果:SQL查询后台所有产品的数量:2003

C#
SmGrid tblMain = Proj.OpenedForms["订单统计测试"].Grids["tblMain"] as SmGrid;
object objValue = tblMain.DataTableHelp.SQLCompute("Count(产品)", "产品='产品01'");
Proj.MsgDebug.Add("后台产品01的数量:{0}", objValue);
objValue = tblMain.DataTableHelp.SQLCompute("Count(产品)");
Proj.MsgDebug.Add("后台所有产品的数量:{0}", objValue);
objValue = tblMain.DataTableHelp.Compute("Count(产品)", "产品='产品01'");
Proj.MsgDebug.Add("内存表中产品01的数量:{0}", objValue);
objValue = tblMain.DataTableHelp.Compute("Count(产品)");
Proj.MsgDebug.Add("内存表中所有产品的数量:{0}", objValue);
objValue = tblMain.DataTableHelp.Database.ExecuteScalar("Select Count(产品) from 订单信息 where 产品='产品01'");
Proj.MsgDebug.Add("SQL查询后台产品01的数量:{0}", objValue);
objValue = tblMain.DataTableHelp.Database.ExecuteScalar("Select Count(产品) from 订单信息");
Proj.MsgDebug.Add("SQL查询后台所有产品的数量:{0}", objValue);

// 返回结果:后台产品01的数量:380
// 返回结果:后台所有产品的数量:2003
// 返回结果:内存表中产品01的数量:380
// 返回结果:内存表中所有产品的数量:2000
// 返回结果:SQL查询后台产品01的数量:380
// 返回结果:SQL查询后台所有产品的数量:2003