-2
我想总结的值,这个值比category
PHP MySQL的总和减去条件
表:
id | value | category
1 | 1000 | income
2 | 500 | income
3 | 600 | expense
收益为正,收益为负
对于这个表我想要得到SUM
并返回900
//1000+500-600
我想总结的值,这个值比category
PHP MySQL的总和减去条件
表:
id | value | category
1 | 1000 | income
2 | 500 | income
3 | 600 | expense
收益为正,收益为负
对于这个表我想要得到SUM
并返回900
//1000+500-600
您的查询应该是这样的
select sum(if(category='income', value, -1 * value))
from table
如果表达式1为真(表达式1 <> 0和表达式1 <> NULL),那么IF()返回 表达式2;否则它返回expr3。 IF()返回数值或字符串值 ,具体取决于使用它的上下文。
表创建/插入数据
CREATE TABLE t
(`id` INT, `value` INT, `category` VARCHAR(7))
;
INSERT INTO t
(`id`, `value`, `category`)
VALUES
(1, 1000, 'income'),
(2, 500, 'income'),
(3, 600, 'expense')
;
查询
SELECT (
SUM(CASE WHEN t.category = 'income' THEN t.value END) -- only sum category = 'income'
-
SUM(CASE WHEN t.category = 'expense' THEN t.value END) -- only sum category = 'expense'
)
AS total
FROM
t
结果
total
--------
900
你需要养成[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)的习惯,它可以帮助你解决你的问题。您将获得积分,其他人将被鼓励帮助您。 –
在[mysql查询中的条件]中可能有[SUM或SUBTRACTION]的副本(http://stackoverflow.com/questions/24791226/sum-or-subtraction-upon-condition-in-mysql-query) – orvi