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