以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- SQLGroupTableBuilder 表达式统计列 除法 的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82900)
|
-- 作者:fubblyc
-- 发布时间:2016/3/27 11:56:00
-- SQLGroupTableBuilder 表达式统计列 除法 的问题
各位老师好,遇到这个问题:
此主题相关图片如下:qq截图20160327114049.png
此主题相关图片如下:qq截图20160327114132.png
3490/4000 怎么会等于 1.8 呢?
原数据表:
此主题相关图片如下:qq截图20160327114147.png
[此贴子已经被作者于2016/3/27 12:00:01编辑过]
|
-- 作者:大红袍
-- 发布时间:2016/3/27 13:02:00
--
明显不能直接计算。生成以后,加入表达式列
DataTables().DataCols.Add("达成率", gettype(double), "iif(除数 = 0, null, 被除数/除数")
|
-- 作者:fubblyc
-- 发布时间:2016/3/27 14:10:00
--
哦,大红袍老师,那表达式统计列不能用在这里是吗?是什么情况下可以用统计表达式列呢?
可以向Totals添加表达式统计列,语法是:
Totals.AddExp(Name,
Expression) Totals.AddExp(Name, Expression, Caption) Totals.AddExp(Name, Expression,
Aggregate) Totals.AddExp(Name, Expression, Caption, Aggregate)
Name: 字符型,指定列名 Expression:字符型,指定表达式。 Caption: 字符型,指定列标题 Aggregate: AggregateEnum枚举型,用于指定统计类型,默认是求和。
例如:
Dim b As New
SQLGroupTableBuilder("统计表1","订单") b.Totals.AddExp("金额","数量 * 单价 * (1-折扣)")
可以看出SQLGroupTableBuilder和GroupTableBuilder的使用方法基本相似,前者只是在后者的基础上增加了:
1、可以用ConnectionName指定数据源 2、可以用AddTable方法增加多个数据表 3、可以用AddExp方法增加表达式分组列或统计列
|
-- 作者:fubblyc
-- 发布时间:2016/3/27 14:11:00
--
Dim b As New SQLGroupTableBuilder("统计表1","日销售数据") b.C b.Groups.AddDef("日期", DateGroupEnum.week, "周次") \'根据日期按年分组 b.Totals.AddDef("日销售目标","周销售目标") \'对数量进行统计 b.Totals.AddDef("日销售","实际完成") \'对数量进行统计 b.Totals.AddExp("与目标差额","日销售目标 - 日销售") 这个结果是对的。
|
-- 作者:大红袍
-- 发布时间:2016/3/27 14:14:00
--
汗,能一样吗?Toals就是把每一行的结果累加。
看2楼,加表达式。
|
-- 作者:fubblyc
-- 发布时间:2016/3/27 14:19:00
--
恩恩。加表达式是可以了。谢谢 大红袍老师。
就是有个疑问,那这个的意思是。。。。表达式统计列。。。
可以向Totals添加表达式统计列,语法是: Totals.AddExp(Name, Expression) Totals.AddExp(Name, Expression, Caption) Totals.AddExp(Name, Expression, Aggregate) Totals.AddExp(Name, Expression, Caption, Aggregate) Name: 字符型,指定列名 Expression:字符型,指定表达式。 Caption: 字符型,指定列标题 Aggregate: AggregateEnum枚举型,用于指定统计类型,默认是求和。 例如: Dim b As New SQLGroupTableBuilder("统计表1","订单") b.Totals.AddExp("金额","数量 * 单价 * (1-折扣)") ?? 可以看出SQLGroupTableBuilder和GroupTableBuilder的使用方法基本相似,前者只是在后者的基础上增加了: 1、可以用ConnectionName指定数据源 2、可以用AddTable方法增加多个数据表 3、可以用AddExp方法增加表达式分组列或统计列
|
-- 作者:大红袍
-- 发布时间:2016/3/27 14:26:00
--
你可以理解 b.Totals.AddExp 就是每一行结果的 合计。
|
-- 作者:fubblyc
-- 发布时间:2016/3/27 14:28:00
--
哦。是先表达式计算再每一行的合计。明白了。谢谢 大红袍 老师。
|