我的数据库中有两列。列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
答案 0 :(得分:2)
问题是声明的group by k_id
部分。这指示mysql按k_id
值进行求和,因此302和303将分别汇总。删除group by
子句和汇总,您将得到0。