查找所有客户的所有先前销售额的总和以及sql查询中今天销售的总和

时间:2015-09-05 07:05:45

标签: sql sql-server sql-server-2008

我在SQL Server 2008中有以下数据库表。

customer
------------
id, Name, Address

payment
-------
payment_id, amount, customer_id

Sales
S_id, Date, ItemName, amount, commission, customer_id

我是SQL查询的新手。我想要显示结果

name, previous customer balance i.e (sum(Sale.amount)+Sum(commission))-sum(Payment) for all customers

3 个答案:

答案 0 :(得分:1)

以下内容应该有效:

select c.[Name], saleSum.SaleTotal - paymentSum.PaymentTotal
from customer c join
(
select c.[id], sum(isnull(s.amount,0) + isnull(s.commission, 0)) SaleTotal
from customer c left join sales s on c.id = s.customer_id
group by c.[id]
) as saleSum on c.id = saleSum.id
join 
(
select c.id, sum(isnull(p.amount,0)) PaymentTotal
from customer c left join payment p on c.id = p.customer_id
group by c.id
) paymentSum on c.id = paymentSum.id

答案 1 :(得分:0)

正是

Select Tab1.ID, 
       Min(Tab1.name),
       sum(Tab3.amount) + Sum(Tab3.commission) - sum(Tab2.amount)
From Table1 Tab1
     inner join Table2 tab2 on Tab1.id = Tab2.customer_id
     inner join Table3 tab3 on Tab1.id = Tab3.customer_id
Group by Tab1.ID

答案 2 :(得分:0)

SELECT
customer.name,
(SUM(sales.amount)+SUM(sales.comission)-SUM(payment.amount)) as "customer balance"
FROM
sales
INNER JOIN customer on sales.customer_id = customer.id
INNER JOIN payment on sales.customer_id = payment.customer_id
GROUP BY customer.name
相关问题