簡體   English   中英

將兩個不同的表相加,然后減去其總數

[英]sum two different table and the subtract its total

我對如何從兩個不同的表中求和,然后求和后總和我想減去它。 例如我有表“銷售”和“銷售”,我在下面有這些ff vlue。

來自“銷售”的數據

id | total | pcode |
1  | 100   | 2143  |
2  | 100   | 2143  |
3  | 50    | 2222  |
4  | 50    | 2222  |

來自“銷售”的數據

id | total | pcode |
7  | 100   | 2143  |
8  | 50    | 2222  |

我的問題是這個。 我想對所有來自銷售的“合計”值求和,並通過pcode。從rsales組求和“合計”值。 我的頁面必須是這樣的。

   total    pcode
 | 100    | 2143  |
 | 50     | 2222  |

我有這個ff代碼,但我不滿意

sql "select sum(rsales.total)- sum(sales.total) as t1 where pcode = rsales.pcode"

采用:

SELECT 
    SUM(r.total)-(
                   SELECT SUM(s.total) 
                   FROM sales AS s WHERE r.pcode=s.pcode
                  ) as total, 
    r.pcode 

    FROM rsales AS r 

    GROUP BY r.pcode;

輸出:

+--+--+--+--+--+-
| total | pcode |
+--+--+--+--+--+-
| 100   | 2143  |
| 50    | 2222  |
+--+--+--+--+--+-
2 rows in set

你嘗試過這樣的事情嗎?

SELECT
    SUM(L.total) as lTotal, SUM(R.total) as rTotal
FROM
    sales L
INNER JOIN rsales R 
    ON
        R.pcode = L.pcode
GROUP BY L.pcode

如果從兩個表中都獲得期望值,則可以在FROM子句中輕松添加Additions和Subtruction。

無需加入即可執行此操作。 如果某些pcode僅在一個表中,則此解決方案有效:

select SUM(total), pcode from (
        select sum(total) as total, pcode from rsales group by pcode
    union all
        select SUM(-total) as total, pcode from sales group by pcode) salesTables
 group by pcode

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM