我的数据库中有两列。列r和列l。我有两行。行302和行303。
对于行302,我有以下数据
---------------------------
| k_id | l | r |
|--------------------------
| 302 | 400 | 0 |
| 303 | 0 | 400 |
---------------------------我正在尝试运行一条SQL语句来选择行l和l中的合计。
在这种情况下,计算结果必须是:400 - 400 = 0。但是当我运行查询时,我得到的是400而不是0。
有人知道为什么我得不到正确的回答吗?
下面是我的sql语句:
SELECT COALESCE(SUM(l), 0) - COALESCE(SUM(r), 0) as total
FROM trans
WHERE user_id = '1' AND k_id IN ('302', '303')
GROUP BY k_id WITH ROLLUP LIMIT 0,1发布于 2017-07-09 08:10:56
问题出在语句的group by k_id部分。这将指示mysql根据k_id值进行求和,因此将分别对302和303求和。去掉group by子句和rollup,您将得到0。
https://stackoverflow.com/questions/44991799
复制相似问题