java从一个表中减去金额之和,再从另一个表中减去金额之和
我得到了错误的sql结果,该结果的值为双负值
我想用另一张表的金额总和减去一张表的金额总和
这是bet_tbl
(第一个表)数据。只勾选bet_Number
“11”。赌注总额为2000英镑。见下文
bet_tbl
这是recover_tbl
(第二个表)数据。recover_tbl
的金额之和为100
见下文
最后的结果是,用recover_tbl.Amount
减去bet_tbl.Amount
得到的金额之和是1900。但是当我运行下面的查询时,我得到了1800。见下文
select
`bet_Number`,
SUM(bet_tbl.`Amount`) - SUM(recover_tbl.`Amount`) AS 'AMOUNT'
from bet_tbl, recover_tbl
WHERE bet_tbl.status= recover_tbl.status
AND bet_tbl.`bet_Date`=recover_tbl.`recover_Date`
AND bet_tbl.status = '0'
AND bet_tbl.`bet_Date`='2013-07-02'
GROUP BY bet_tbl.`bet_Number`
以下是运行查询后的结果
[结果]:
我找不到哪里出错了。我陷入困境,需要帮助。谢谢你的建议和回答
# 1 楼答案
如果你只想打赌。打赌号码='11',你在where中错过了它
# 2 楼答案
尝试在
bet_Number
或Max(bet_number)
前面添加Distinct
子句# 3 楼答案
你这样做会得到1800分。这是因为聚合是在加入后执行的。 你知道有两个记录,11个下注号码,1000个金额。因此,与另一个表连接将生成两条记录
现在把它聚合起来就可以了
因此结果是2000-200=1800
在使用recover_tbl减去金额之前,需要在表bet_tbl中进行聚合。差不多