Foxtable(狐表)用户栏目专家坐堂 → 这样的统计表达式列应该怎样设置?


  共有17099人关注过本帖树形打印复制链接

主题:这样的统计表达式列应该怎样设置?

帅哥哟,离线,有人找我吗?
reachtone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
这样的统计表达式列应该怎样设置?  发帖心情 Post By:2009/10/24 17:40:00 [只看该作者]

如下图。需求如下:

1.用SQLGroupTableBuilder进行分组统计

2.分组列为"客户",另用Exprs添加一个表达式统计列“总额”

3.表达式列要求这样生成:客户名称为“A”时,面积*2;为“B”时,面积*3;为“C”时,面积*4

4、实际应用中,是直接对sql数据库统计,且是直接在后台统计(数据并未加载到table)。因此,解决方案中不能在table中增加临时列。


图片点击可在新窗口打开查看此主题相关图片如下:snap3.jpg
图片点击可在新窗口打开查看

例子文件在这里,向高手求教。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目11.table


 回到顶部
帅哥哟,离线,有人找我吗?
HLJ
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:71 积分:703 威望:0 精华:0 注册:2009/7/4 13:56:00
  发帖心情 Post By:2009/10/24 18:40:00 [只看该作者]


...
b.Exprs.Adddef("面积","[面积]*iif([客户] = 'A',2,iif([客户] = 'B',3,iif([客户] = 'C',4,0)))","总额")
...

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/10/24 19:27:00 [只看该作者]

一楼的只是举个例子,实际上"客户"列不重复的值有N多个,每个"客户"也都有相应的系数,只能用iif吗?
[此贴子已经被作者于2009-10-24 19:53:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/10/24 20:05:00 [只看该作者]

可否可以在数据库中增加系数列呢?

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/10/24 20:12:00 [只看该作者]

实在不行的话,也只有在后台数据库中加上这么一列了。

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/10/25 16:33:00 [只看该作者]

由于外部数据库中,这个原始表的记录太多,实在不想在原始表中增加一列。
我尝试在分组统计中,用addtable的方法来生成表达式列。经测试,addtable时,如果只有一个关联列是没问题的,2个及以上的关联列就无法设置了。
这是例子,请高手支招。谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目11.table


 回到顶部
帅哥哟,离线,有人找我吗?
gdlgh
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:449 积分:3506 威望:0 精华:5 注册:2008/9/1 2:32:00
  发帖心情 Post By:2009/10/25 18:03:00 [只看该作者]

呵。自己写SQL分组语句来统计,何必一定要用SQLGroupTableBuilder进行分组统计呢?
老总也是把SQLGroupTableBuilder的属性来组成SQL字符串来统计的,是简缩版,自然受一定的限制!!
楼主本身是对SQL熟悉的,反而局限于此,难明!图片点击可在新窗口打开查看
[此贴子已经被作者于2009-10-25 18:11:29编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/10/25 18:11:00 [只看该作者]

以下是引用gdlgh在2009-10-25 18:03:00的发言:
呵。自己写SQL分组语句来统计,何必一定要用SQLGroupTableBuilder进行分组统计呢?

呵呵,就是因为不想写太多的sql代码,才在当初建议老六加上各种比例分析的。我这个项目中,很多统计都是由客户自行组合的,直接调用统计函数更加方便。
因为实在找不出更好的办法,现在只好考虑用代码生成iif判断表达式。但现在又碰到一个很奇怪的问题,同样的IIF表达式,刷新列时正常,用到分组统计的Exprs中就不出结果,这又是为何?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目12.table

[此贴子已经被作者于2009-10-25 18:11:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/10/25 18:22:00 [只看该作者]

以下是引用gdlgh在2009-10-25 18:03:00的发言:
呵。自己写SQL分组语句来统计,何必一定要用SQLGroupTableBuilder进行分组统计呢?
老总也是把SQLGroupTableBuilder的属性来组成SQL字符串来统计的,是简缩版,自然受一定的限制!!
楼主本身是对SQL熟悉的,反而局限于此,难明!图片点击可在新窗口打开查看
[此贴子已经被作者于2009-10-25 18:11:29编辑过]

呵呵,我现在项目中的大部分统计都已经基于foxtable本身的统计来实现了,只有少数特殊的查询自己编写sql语句完成。
其实这种表达式在sql语句中用case when很容易的,无奈已经套上了foxtable统计的框架,改起来更麻烦。
不知10楼的问题又是因为什么?唉,总是不顺!

[此贴子已经被作者于2009-10-25 18:22:21编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/10/25 18:28:00 [只看该作者]

终于知道了,因为0值的问题!
晕..

 回到顶部
总数 16 1 2 下一页