Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
sqlite3中一个奇怪的计算错误_Sql_Sqlite - Fatal编程技术网

sqlite3中一个奇怪的计算错误

sqlite3中一个奇怪的计算错误,sql,sqlite,Sql,Sqlite,我需要从两个表中计算一些数据。当我进行手工或(计算器)计算时,我得到的输出与使用查询时不同。有人能指出错误是什么吗 当我手工计算时,我得到totalcard的“10”,但当我运行此查询时,我得到“41”。这是否与与与tbltrans.card列没有任何关系的索引有关 代码如下: 这是我的tbltrans: 和tbltrans2: 每笔交易有多个项目,因此,卡字段将为每个项目记录显示一次,因此它将为每笔交易汇总多次 您的查询还存在另一个问题:您正在对card列使用聚合函数(sum),但没有对其他

我需要从两个表中计算一些数据。当我进行手工或(计算器)计算时,我得到的输出与使用查询时不同。有人能指出错误是什么吗

当我手工计算时,我得到totalcard的“10”,但当我运行此查询时,我得到“41”。这是否与与与tbltrans.card列没有任何关系的索引有关

代码如下:

这是我的tbltrans: 和tbltrans2:

每笔交易有多个项目,因此,
字段将为每个项目记录显示一次,因此它将为每笔交易汇总多次

您的查询还存在另一个问题:您正在对
card
列使用聚合函数(
sum
),但没有对其他值进行聚合。 然后,SQLite为
值计算一个和,从而生成一个结果记录。 为了计算此结果记录的
Total
值,SQLite不知道要使用
tbltrans
/
tbltrans2
记录中的哪一个,因此它只使用这些表中的一个随机记录

要计算正确的
totalcard
值,您不能在同一查询中加入
tbltrans2
表:

SELECT ifnull(sum(tbltrans.card), 0) AS totalcard
FROM tbltrans
WHERE tbltrans.saledate = '06/01/2013'

Total
值可以通过子查询计算,但这取决于它的含义。(每笔交易的总折扣?当日所有交易的总折扣?

我认为这在语法上是无效的。第2行缺少一些括号。你是什么意思?确切位置在哪里?代码片段的第2行。计算左括号的数目。然后计算右括号的数量。如果您运行这个精确的查询,您将得到语法错误。使用您运行的确切查询编辑您的问题,更好的是,使用表中的数据。如果没有数据,就无法推断值应该是什么。你能举个例子吗?
SELECT ifnull(sum(tbltrans.card), 0) AS totalcard
FROM tbltrans
WHERE tbltrans.saledate = '06/01/2013'