Foxtable(狐表)用户栏目专家坐堂 → [求助]字条串列如何进行累加计算


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

主题:[求助]字条串列如何进行累加计算

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


加好友 发短信
等级:幼狐 帖子:105 积分:1199 威望:0 精华:0 注册:2017/6/10 10:52:00
[求助]字条串列如何进行累加计算  发帖心情 Post By:2021/5/26 14:54:00 [只看该作者]

之前建立SQL Server数据库时,误将一列类型设为了字符串,现在进行分组统计时,无法对这一列进行累计值计算,请问下有无比较简单的代码方式解决

假设备用5列是字符串,如何在分组统计时统计累计值

Dim gg As New GroupTableBuilder("统计表2", DataTables("称重信息"))

gg.Groups.AddDef("发货单位")

gg.Totals.AddDef("收货单位",AggregateEnum.Count,"车次")

gg.Totals.AddDef("备用5",AggregateEnum.Sum,"件")

gg.Totals.AddDef("净重")

gg.SubTotal = True

Tables("测试1_Table1").DataSource = gg.BuildDataSource() '不能与gg.build()同时使用,会出现闪退现象

e.Form.Controls("Table1").Visible = True

报以下错误

Conversion from string "" to type 'Decimal' is not valid.

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/26 15:04:00 [只看该作者]

没有办法,必须改为数值列,比如整型,双精度之类

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


加好友 发短信
等级:三尾狐 帖子:651 积分:4945 威望:0 精华:0 注册:2016/1/16 22:42:00
  发帖心情 Post By:2021/5/26 21:37:00 [只看该作者]

只有自己设计一个,确实在信息处理中经常需要累计字符串列,建议foxtable增加字符串累计功能

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


加好友 发短信
等级:狐神 帖子:4760 积分:34608 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2021/5/27 8:20:00 [只看该作者]

用SQLGroupTableBuilder试试

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/27 9:22:00 [只看该作者]

以下是引用小美菜在2021/5/26 21:37:00的发言:
只有自己设计一个,确实在信息处理中经常需要累计字符串列,建议foxtable增加字符串累计功能

没有办法累计,既然是字符列,就有可能有非数字,比如字母,符号,空格,空字符串等。不要说可以保证只录入数字,除了自己没有人相信。

1、增加辅助列,把字符串是代码转换为数值
2、可以考虑使用SQLGroupTableBuilder,使用sql语法进行类型转换,这个自行百度一下,前提是保证只录入数字,否则会出错,比如SqlServer

b.Totals.AddExp("件","cast(备用5 as float)",AggregateEnum.Sum)

 回到顶部