以下代码显示自我们创建数据库以来已经购买的所有客户以及他们花了多少钱。自从我们实施新数据库以来,有几个客户没有购买,但是当我运行此代码时它们没有出现。我查看了这个网站的相似例子,但解决方案对我来说太复杂了。 还有一个客户表显示我们所有'n'客户的结果,该表通过customerID连接到orders表。不确定这是否有帮助。
select t3.CustomerID, sum(Revenue) as Revenue
from
(
select orderid, sum(UnitPrice*quantity) as Revenue from [Order Details]
group by OrderID
)t1
inner join
(
select customerid,orderid from orders
)t3
on t1.orderid=t3.orderid
group by t3.CustomerID
答案 0 :(得分:1)
我想你只想要这个更简单的查询:
select c.CustomerID, sum(od.UnitPrice * od.quantity) as Revenue
from customers c left outer join
orders o
on o.CustomerId = c.CustomerId left outer join
`Order Details` od
on od.OrderId = o.OrderId
group by c.CustomerID;