2011-07-05 25 views
4

我得到這個表名爲tb_stock如何總結基於字段值(MySQL的)

ID AMOUNT FLAG LAST_AMOUNT 
1 5  N 0     
2 0  Y 8     
3 0  Y 7     
4 6  N 0 

現在,我要總結基於標誌值的值。例如,如果標誌值爲N,則它將從AMOUNT字段求和,如果標誌值爲Y,則它將從LAST_AMOUNT字段求和。

所以總金額將是26(5 + 8 + 7 + 6)。

這是可以實現只使用mysql或它會涉及到PHP?

謝謝。

+0

一個例子,我相信你不得不寫使用遊標與MySQL的純粹的完成它的存儲過程。你可以用不同的數據庫結構創建一個更簡單的解決方案(添加一個字段'AMOUNT_TO_SUM',設置爲'AMOUNT'或'LAST_AMOUNT'並且做一筆總和) –

回答

5
SELECT SUM(CASE WHEN FLAG = 'Y' THEN LAST_AMOUNT ELSE AMOUNT END) AS TOTAL 
FROM tb_stock 
+0

感謝我所需要的:) – cyberfly

0

這是使用IF聲明

SELECT SUM(IF(`flag`='y', last_amount, amount)) 
FROM example_table