以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]字条串列如何进行累加计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=168901)

--  作者:onlinech
--  发布时间: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.
--  作者:有点蓝
--  发布时间:2021/5/26 15:04:00
--  
没有办法,必须改为数值列,比如整型,双精度之类
--  作者:小美菜
--  发布时间:2021/5/26 21:37:00
--  
只有自己设计一个,确实在信息处理中经常需要累计字符串列,建议foxtable增加字符串累计功能
--  作者:y2287958
--  发布时间:2021/5/27 8:20:00
--  
用SQLGroupTableBuilder试试
--  作者:有点蓝
--  发布时间: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)