2010-07-08 104 views
2

sql列 - trans_value包含正值和負值的數量。mysql fetch sum php

所以我想弄清楚如何設置一個積極的價值和負值的總和,以便我可以計算積極多少的總和和多少是總和的負面。

所以最後,我可以減去兩個,正面 - 負面。

編輯, 我忘了在那之前

何況還有列名的產品ID在同一個表,所以

product_id | trans_value 
1    200 
1    250 
1    -150 
2    500 
2    -300 
3    200 
3    -150 

,所以我需要讓產品編號1的總和,顯示出來,然後爲2,3等。

感謝

回答

3

如果你只是想看看總每個PRODUCT_ID

SELECT product_id, SUM(trans_value) 
FROM table 
GROUP BY product_id 
ORDER BY product_id 

如果你真的需要seperately的正值和負值:

SELECT SUM(IF(trans_value<0;trans_value;0)) neg, SUM(IF(trans_value>0;trans_value;0)) pos 
FROM table 

將投入總和neg中的負值,pos中的正值的總和。 pos + neg將是總數。

+0

喜對不起,我忘了較早之前提到的,我編輯我的職務,請檢查感謝 – damien 2010-07-08 16:05:47

+0

編輯答案。 – Konerak 2010-07-08 16:08:44

+0

是否可以拿出php方法? – damien 2010-07-08 16:17:03

0

SELECT SUM(trans_value) AS sum FROM table WHERE trans_value > 0;

+0

這隻會計算積極因素。 OP也要求否定。 – Konerak 2010-07-08 16:01:35