1
我有一个表获取总和()结果在一个查询在MySQL
id name state num
1 x in 10
2 x out 1
3 x in 5
4 x out 2
5 y ...
6 y ...
预期的结果是总结了NUM为“中”,并在一个查询“出来”,然后计算差值,像
name numin numout diff
x 15 3 12
y ....
感谢
我有一个表获取总和()结果在一个查询在MySQL
id name state num
1 x in 10
2 x out 1
3 x in 5
4 x out 2
5 y ...
6 y ...
预期的结果是总结了NUM为“中”,并在一个查询“出来”,然后计算差值,像
name numin numout diff
x 15 3 12
y ....
感谢
你想要的是GROUP BY
(和CASE声明):
SELECT
name,
SUM(CASE WHEN state='in' THEN num ELSE 0 END CASE) AS numin,
SUM(CASE WHEN state='out' THEN num ELSE 0 END CASE) AS numout,
SUM(CASE WHEN state='in' THEN num ELSE -1*num END CASE) AS diff
FROM
table
GROUP BY
name
太棒了!但要等6分钟才能标记 – bxx 2010-05-31 02:09:07