Foxtable(狐表)用户栏目专家坐堂 → 统计工具中的数据分析有点小问题


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

主题:统计工具中的数据分析有点小问题

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
统计工具中的数据分析有点小问题  发帖心情 Post By:2011/9/7 23:31:00 [显示全部帖子]

以自带的“多表统计”为例,执行如下代码:

 

Dim b As New SQLGroupTableBuilder("统计表1","订单")
b.C
b.Groups.AddDef("产品ID")
b.Totals.AddExp("22","单价*数量")        '注意这里生成的列名
b.VerticalTotal = True
b.GroupProportion = True

b.Build

 

问题是:不论将统计列的列名称定义成什么,比如22、33、ab%等任何奇怪的名称,只要没有蓝底白字的那两行代码,都能正确统计;一旦加上这两行代码中的任何一个,则统计肯定出错!事实是,不仅这两行代码,所有与数据分析相关的属性,一旦加入,都会出错。

可能有人会问:干嘛要设置那么奇怪的统计列名称呢?这是实际工作中碰到的,需要根据用户设置的内容来生成统计表。也就是说,列名都不是事先设定的,都是根据用户输入的内容自动生成的。


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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2011/9/8 7:36:00 [显示全部帖子]

呵呵,正常建表当然是应该遵循这些规则的。但生成的统计表就会碰到各种复杂的情况。

既然不加参数可以正常统计,说明使用这些列名没问题。

其实,foxtable的统计工具也是通过sql语句完成的。在sql中,只要列标题用[]括起来,标题中有任何特殊的字符都是可以的。这是小问题,老大应该可以轻松解决。


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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2011/9/8 8:22:00 [显示全部帖子]

加个字母也不行,比如有的列是含有%符号的,仍然出错。

关键问题还不在这里,因为我根本不知道用户可能还会输入其它什么内容。所以,最好还是想个彻底的办法解决为好。


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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2011/9/8 8:32:00 [显示全部帖子]

这个问题我通过代码是可以解决的,比如列名统一用一个字母加上顺序号,列标题用用户输入的内容。(循环读取的用户设置,列名加上序号就可以了)。

我提出这个问题的目的是,foxtable作为应用软件,可能有的用户并不要编码,遇到这种情况直接统计就出错了。所以还是希望foxtable更完善。

因为直接用户是把它作为应用软件来用的,他才不管这么多呢。。。

 


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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2011/9/8 8:53:00 [显示全部帖子]

这种表很常见吧?

 

项目  2001年  2002年  2003年。。。

aa 。。

bb 。。

cc  。。

dd  。。

ee  。。

 

这种表在foxtable中是没办法建立的,但在外部数据库中没问题。如果用这种外部数据源,然后对年份列分组统计试试?

实际应用中,各种可能的情况太多了。


 回到顶部