MYSQL计算返回错误的值

时间:2017-07-08 23:58:44

标签: mysql

我的数据库中有两列。列r和列l。 我有两行。行302和行303

对于行302,我有以下数据

---------------------------
|   k_id   |   l   |   r  |
|--------------------------
| 302      | 400   | 0    |
| 303      | 0     | 400  |
---------------------------

我正在尝试运行SQL语句来选择行ll中的总计。

在这种情况下,计算必须是: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

1 个答案:

答案 0 :(得分:2)

问题是声明的group by k_id部分。这指示mysql按k_id值进行求和,因此302和303将分别汇总。删除group by子句和汇总,您将得到0。