以文本方式查看主题 - 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=79459) |
-- 作者:chnfo -- 发布时间:2016/1/1 9:50:00 -- [求助]SQLGroupTableBuilder中如果列是空值 Dim b As New SQLGroupTableBuilder("统计表1","订单") 这是帮助中的说明。 此时,如果用户并没有在“折扣”列输入任何值,即折扣列是空值,执行这个,显示的金额就会是0 此时,除了去计单表中将折扣列的值设为0外,还有什么办法可以让金额计算出来呢? b.Totals.AddExp("金额","数量 * 单价 * (1-isnull(折扣,0))") -------这样会报错 另外,要想在表达式中四舍五入,写成下面这样,会报错 b.Totals.AddExp("金额","math.round(数量 * 单价 * (1-折扣),2)") -----这样也会报错,应当如何解决? 如果想同时解决上面两个问题,又当如何? [此贴子已经被作者于2016/1/1 21:14:15编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/1/3 23:14:00 -- 你的事access数据源吧?
b.Totals.AddExp("金额","数量 * 单价 * (1-iif(折扣 is null,0,折扣))") |
-- 作者:chnfo -- 发布时间:2016/1/4 11:55:00 -- 我的是内部表呀,还没有用外部数据库 |
-- 作者:大红袍 -- 发布时间:2016/1/4 11:57:00 -- 内部表,就是access数据库,看2楼语法 |
-- 作者:chnfo -- 发布时间:2016/1/4 15:35:00 -- 如果要加入round算法取整呢? |
-- 作者:大红袍 -- 发布时间:2016/1/4 15:37:00 -- 直接用里面的函数,用format也可以
http://www.foxtable.com/help/topics/0692.htm
|
-- 作者:chnfo -- 发布时间:2016/1/4 16:03:00 -- 貌似不行呀 |
-- 作者:大红袍 -- 发布时间:2016/1/4 16:18:00 -- 多表统计这个例子,使用外部数据源的,你要指定数据源名。 |
-- 作者:chnfo -- 发布时间:2016/1/4 16:22:00 -- 内部数据表不行吗? ConnectionName: 指定数据源名称,如果省略,表示使用内部数据表。
[此贴子已经被作者于2016/1/4 16:32:06编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/1/4 16:33:00 -- 可以啊,但是你这个例子是外部数据源的啊 |