[英]sum two difrrent value from single table and subtract its value and group them by pcode
我有一個名為rsales的表。 例如,我可以從我的表“rsales”中獲得以下值
id | total | discount | profit | remarks | p_code |
1 | 20 | 2 | 5 | sales | 1234 |
2 | 20 | 4 | 10 | sales | 1234 |
3 | 20 | 6 | 15 | sales | 1234 |
5 | 20 | 2 | 5 | return | 1234 |
6 | 20 | 4 | 10 | return | 1234 |
7 | 10 | 5 | 5 | sales | 3333 |
8 | 10 | 5 | 5 | sales | 3333 |
9 | 10 | 5 | 5 | sales | 3333 |
10 | 10 | 5 | 5 | return | 3333 |
11 | 10 | 5 | 5 | return | 3333 |
我的問題是,我希望將所有值匯總為remarks =“sales”並將所有值匯總到remarks =“return”,然后在得到它的總和后,我想減去總額,其中備注='sales'總額,其中備注= 'return'並按pcode對它們進行分組。 所以以下輸出必須是這樣的。
| total | discount | profit | p_code |
| 20 | 6 | 15 | 1234 |
| 10 | 5 | 5 | 3333 |
我有這個ff代碼,但它只能加上remarks ='return'的值
$result1 = mysql_query ("SELECT sum(total) as tot,sum(discount) as dis, sum(profit) as prof FROM rsales WHERE remarks ='return' GROUP by p_code ");
你需要條件求和。 假設remarks
僅采用“sales”和“returns”的值,則以下是一種相對簡單的方法:
SELECT sum(case when remarks = 'sales' then total else - total end) as tot,
sum(case when remarks = 'sales' then discount else - discount end) as discount,
sum(case when remarks = 'sales' then profit else - profit end) as profit,
p_code
FROM rsales
GROUP by p_code;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.