Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 总和字符串字段TQuery-Delphi v7_Sql_Delphi_Delphi 7 - Fatal编程技术网

Sql 总和字符串字段TQuery-Delphi v7

Sql 总和字符串字段TQuery-Delphi v7,sql,delphi,delphi-7,Sql,Delphi,Delphi 7,德尔福v7 我正在尝试对dbGrid中的一列求和。这应该很容易,但我似乎无法完成。该字段是一个字符串字段 到目前为止,我创建的代码是: Query1.Close; Query1.SQL.Text := 'SELECT SUM(field) FROM "mytable"'; form1.Query1.Open; Edit1.Text := form1.Query1.Fields[0].AsString; 似乎我必须将字符串字段中的数据转换为整数。对我来说,这似乎是一个不需要动脑筋的问题,但我尝试

德尔福v7

我正在尝试对dbGrid中的一列求和。这应该很容易,但我似乎无法完成。该字段是一个字符串字段

到目前为止,我创建的代码是:

Query1.Close;
Query1.SQL.Text := 'SELECT SUM(field) FROM "mytable"';
form1.Query1.Open;
Edit1.Text := form1.Query1.Fields[0].AsString;

似乎我必须将字符串字段中的数据转换为整数。对我来说,这似乎是一个不需要动脑筋的问题,但我尝试的都不管用。这里需要一些帮助:-

帮助您解决此问题。如注释中所述,解决方案在查询中,而不是在Delphi代码中:

Query1.SQL.Text := 'SELECT SUM(VAL(field)) AS RESULT FROM "mytable"';

VAL语法取决于您使用的数据库,它将字段转换为一个值,然后求和。

我用谷歌搜索了advantage db。您可以尝试从mytable中选择sumcastfield作为货币。不会处理具有非数值的列。最好的猜测是因为我在公共汽车上,回答这个问题花了5分钟多

请添加表结构、一些示例值和查询的预期结果。数据库为绝对数据库。这个问题的表格很简单。它有四个字段:日期、说明、借方、贷方。所有字段都是不同字符宽度的字符串字段。我需要求和的列是借方字段。它是一个宽度为20个字符的字符串字段。借方字段中的值为货币。我需要能够计算显示的所有记录的借方字段的总金额。如果有三条记录,且借方字段分别包含3.00、5.00和2.00,则结果应为10.00。总数将显示在文本框中。您应该首先直接在数据库上测试查询。所以这个问题与delphi无关,它只与sql或abosulte数据库有关。Delphi无法修复您的非工作sql查询这不是Delphi问题。这是一个绝对的数据库SQL问题。在Delphi组件中使用SQL之前,您必须先使用SQL。有关支持的标量函数(如CAST或CONVERT),请参阅绝对数据库文档。将来,如果您有需要求和的数据,请将其放在数字列而不是字符串列中,这样就不会出现此问题。绝对数据库附带DBManager实用程序。我找不到太多关于它的信息。这不允许您单独执行SQL吗?@Robert但请注意,您的底层数据库存在严重问题:数值存储在字符串字段中。这意味着理论上该字段中可以有任何内容,并且您的查询将因错误或更糟的是错误的总和而失败。也许你很幸运,数据是由一个程序放在那里的,它可以确保数字的格式正确。我想你还是可以改变表的结构的,就这么做吧。我在谷歌上搜索了advantage db sumcastfield,就像mytable中的Cas一样浮动