簡體   English   中英

MySQL 多表求和

[英]MySQL multiple table sum

我想列出余額的客戶。 我有3張桌子,

客戶、銷售、付款

客戶表


id name    lastname
1  John    Doe
2  Example Customer
3  NonBaloance User

銷售表

id customer_id amount
1  1           1500
2  2           300

付款表

id sales_id amount
1  1        500
2  1        700
3  2        200

我需要按余額列出客戶訂單(銷售金額計數 - 付款金額計數)

示例結果

id name       lastme   balance
1  John       Doe      300
2  Example    Customer 100
3  NonBalance User     0

可能嗎?

您可以使用相關子查詢來計算余額,如下所示:

select
    c.*,
    coalesce(
        (
            select sum(
                s.amount 
                - (select coalesce(sum(p.amount), 0) from payments p where p.sales_id = s.id)
            )
            from sales s
            where s.customer_id = c.id
        ), 
        0
    ) balance
from customer c

DB Fiddle 上的演示

id | name        | lastname | balance
-: | :---------- | :------- | ------:
 1 | John        | Doe      |     300
 2 | Example     | Customer |     100
 3 | NonBaloance | User     |       0

暫無
暫無

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

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