AdventureWorks2012:Sql对于每个客户,确定在2007年创建的订单数量。如果客户在2004年没有创建任何订单,则为该客户显示0。显示:客户ID,2007年创建的订单数量。
答案 0 :(得分:0)
与我的其他回复中的方法相同 - 使用CTE(公用表表达式)来确定2007年每个客户的销售数量:
-- determine the number and total of all sales in 2007
;WITH SalesPerCustomer AS
(
SELECT
c.CustomerID,
NumberOfSales = ISNULL(COUNT(soh.SalesOrderID), 0)
FROM
Sales.Customer c
INNER JOIN
Sales.SalesOrderHeader soh ON soh.CustomerID = c.CustomerID
AND soh.OrderDate >= '20070101'
AND soh.OrderDate < '20080101'
GROUP BY
c.CustomerID
)
SELECT
CustomerID ,
NumberOfSales
FROM
SalesPerCustomer
ORDER BY
NumberOfSales DESC
按销售数量递减订购产出,因此您将获得销售额最高的客户