簡體   English   中英

如何對兩個相關表中的列求和

[英]How to sum columns from two related tables

我有兩張桌子。 Invoicesinvoice_items 我正在嘗試獲取每個客戶的total_payment和總quantity的總和。 我試過這個查詢:

SELECT client_id,
sum(total_amount), sum(it.quantity) as days_hired
FROM  `invoices` `iv`
  join invoice_items it on  it.invoice_id=iv.invoice_id
group by client_id, it.invoice_id

但是對於client_id 14,我得到的總付款是1908,而不是636。看來此列的總和對於每個invoie_item都會重復。 任何幫助將不勝感激。

invoices

invoice_id    client_id    total_payment
    36        13           530
    38        14           636


invoice_items

invoice_id    user_id      quantity     
36            2            2
38            3            2
38            4            2
38            5            2

預期產量:

13     530       2
14     636       6

您可以在下面嘗試-

SELECT client_id, sum(total_amount) as toal_amount, sum(it.quantity) as total_quantity
FROM  `invoices` `iv`
join
(
 select invoice_id,sum(quantity) as quantity from invoice_items group by invoice_id
)it on  it.invoice_id=iv.invoice_id
group by client_id, it.invoice_id

嘗試:

select i.*, ii.total_quantity
from invoices i
join (
  select invoice_id, sum(quantity) total_quantity from invoice_items
  group by invoice_id
) ii on i.invoice_id = ii.invoice_id

暫無
暫無

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

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