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