Foxtable(狐表)用户栏目专家坐堂 → 有没有更好的办法来对临时表的某一列内容进行更新?


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

主题:有没有更好的办法来对临时表的某一列内容进行更新?

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
有没有更好的办法来对临时表的某一列内容进行更新?  发帖心情 Post By:2009/9/12 10:56:00 [显示全部帖子]

我现在想对生成的统计表的金额列转换为万元,翻遍了所有的帮助,好象只能通过行循环的方法,对每一行的金额列分别赋值。我很担心,如果统计结果的记录数很多的话,这种更新方式的效率是不是太低了?难道不能用一条命令对这一列进行整体转换吗?
datatable有replacefor方法,但它只能替换为指定值,不能用表达式;DataCol可以用Expression设置计算表达式,但它仅对表达式列或临时列有效。
请问,还有没有更好的办法来实现某一列内容的更新?

[此贴子已经被作者于2009-9-12 10:56:44编辑过]

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


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

Eval实际上也是按行更新的,这跟我现在用的行循环更新实际上是一个意思。
曾经尝试用sqlcommand的ExecuteNonQuery,因为这里可以使用sql语句。试了以后也不行,说是找不到指定表。
实在不行的话,只能按杨版的意思,增加一个临时列了。
只是没有想到,很常用的列更新,怎么会这么不便呢?Expression干嘛要分什么临时列或表达式列?如果一定要这么分的话,可不可以象RaiseDataColChanged能强制刷新某列一样,也来个RaiseExpression呢?
请老六考虑改进一下!
[此贴子已经被作者于2009-9-12 12:31:39编辑过]

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/9/12 13:25:00 [显示全部帖子]

以下是引用HLJ在2009-9-12 12:40:00的发言:
其实也可以用Select重新生成,反正SQL高效嘛.

统计表是用GroupTableBuild等生成的临时内部表,没办法使用sqlcommand,总是提示表名错误。如:
update {tjb} set  费用 = Round(费用/10000,2) 
这个sql语句再简单不过了,但一执行就出错。tjb是生成的统计表名称。

[此贴子已经被作者于2009-9-12 13:26:23编辑过]

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


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

呵呵,我两种都用的。GroupTableBuild用于对已调出数据的统计,SQLGroupTableBuilder直接用于后台统计。
不过,HLJ倒是给了我一个启发,不论原始数据是否加载,其实都可以用SQLGroupTableBuilder的,把当前表的filter作为统计条件进行后台统计就行。
多谢!


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


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

    通过SQLGroupTableBuilder的Exprs可以将金额列直接转换成万元了,效果不错。
    但又来一个问题:自动生成占比、同比、环比等设置,一概对表达式统计列无效。也就是说,如果想用表达式转换,该列就不能自动生成同比、环比等分析列了。
    统计方面的问题不少,请老六考虑一并改进吧,谢谢!

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/9/13 14:03:00 [显示全部帖子]

以下是引用hnaysx在2009-9-13 13:39:00的发言:


要求太高了

呵呵,这个要求并不高。老六能给正常的列生成各种百分比,这个应该也没什么问题。
一条sql语句就能搞定的事!


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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/9/13 14:38:00 [显示全部帖子]

以下是引用czy在2009-9-13 14:27:00的发言:


从后台统计肯定不能统计出表达式列的数据,因为后台无此数据。

呵呵,不是这样的。
老六说可以自动生成最高效的sql统计语句,说明它也是用sql语句实现统计的。而在sql中,对查询结果再统计是很轻松的事。比如,在A表和B表组合查询的基础上,再进行其它查询或统计,都是没问题的。因为A表和B表组合查询得到的结果就可以当作一个表来使用(只不过没有物理存储而已),可以直接对这个查询再进行统计的。


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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/9/13 17:18:00 [显示全部帖子]

以下是引用hnaysx在2009-9-13 14:55:00的发言:


有理

我怎么就不觉得有理呢?因为对于后台数据库中没有物理存在的“表达式列”而言,一样可以直接对其统计并生成百分比的。
我用杨版的远程数据库做了个例子,就一条sql语句,直接生成了“金额”表达式列,并对它计算了百分比。sql非常强大,还是希望能适当改进一下,对Exprs表达式列也能直接生成各种百分比。

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

[此贴子已经被作者于2009-9-13 17:19:35编辑过]

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


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

以下是引用狐狸爸爸在2009-9-14 7:49:00的发言:
表达式列生成不了比例分析的问题,应该是bug,我会处理好的

老六潜伏了两天,终于上线了。
有您这句话,心里真踏实啊,呵呵。。


 回到顶部