id by for amount
1 8 5 50
2 5 7 30
3 6 5 80
4 5 3 40
我该怎么做
SELECT SUM(`amount`)[//WHERE for=5] - SUM(`amount`)[//WHERE by=5] FROM table
i.e. 130-70
所以我有一张桌子..
我想像上面那样执行查询..
id by for amount
1 8 5 50
2 5 7 30
3 6 5 80
4 5 3 40
我该怎么做
SELECT SUM(`amount`)[//WHERE for=5] - SUM(`amount`)[//WHERE by=5] FROM table
i.e. 130-70
所以我有一张桌子..
我想像上面那样执行查询..
你可以使用一个case
语句
SELECT SUM(case when `for`=5 then `amount` else 0 end) -
SUM(case when `by`=5 then `amount` else 0 end)
FROM table
amount
仅针对特定情况添加,0
否则添加。
你可以做这样的事情,
SELECT DISTINCT((SELECT SUM(amt) FROM tablename WHERE for = 5) -
(SELECT SUM(amt) FROM tablename WHERE by = 5))
FROM tablename;
在 MySQL 中为我工作:)
您还可以使用IF()
功能:
SELECT SUM( IF(`for`=5, `amount`, 0)) -
SUM( IF(`by`=5, `amount`, 0))
FROM tablename
IF()
工作方式如下:
IF(<condition>, <value if true>, <value if false>)
我使用 IF()
withinSUM()
来添加 amount
,如果 for/by
等于5
else 0
将被添加。
SELECT
SUM(
CASE
WHEN _for = 5
THEN amount
ELSE 0
END
) - SUM(
CASE
WHEN _by = 5
THEN amount
ELSE 0
END
) AS val
FROM temp