-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