[英]SQL Group by prevents summing across multiple records
我正在嘗試匯總“付款”表中多個條目的已付款金額,並顯示誰是該訂單的買方
因此,如果兩個人在一張訂單上付款,則將顯示他們的總付款並顯示誰是付款人。 因此,如果Bob和Sue在一張30美元的鈔票上付了10美元,它將顯示
Order Buyer Paid Owes
1 Bob 20 10
1 Sue 20 10
但我目前在
Order Paid Owes
1 20 10
如何添加買家? 可能加入? 目前我有。
Select Order.Orderid, sum(Payment.amount) as "Paid", Order.Price-sum(Payment.amount) as "Owes"
from order, payment
where payment.orderId = order.orderid
group by (order.orderid, order.price)
由於付款是m對n的關系,因此付款具有BuyerId和orderid作為外鍵。
正如您在評論中提到的,當您加入買方時,它不會給您所需的輸出,即所有付款的總和。 要獲得買家和所有付款的總和,並加入付款表的另一個實例,並使用該總和來計算總和,就可以了。
SELECT
Order.Orderid,
Buyer.Name,
SUM(PaymentSum.amount) AS 'Paid',
Order.Price-SUM(PaymentSum.amount) AS 'Owes',
FROM
Order
JOIN Payment
ON Order.Orderid = Payment.Orderid
JOIN Buyer
ON Payment.BuyerId Buyer.BuyerId
JOIN Payment AS PaymentSum
ON Order.Orderid = PaymentSum.Orderid
GROUP BY
Order.Orderid,
Order.Price,
Buyer.Name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.