对于每个客户,确定在2007年创建的订单数量。如果客户在2007年未创建任何订单,则为该客户显示0。
显示:客户ID,2007年创建的订单数量(如果没有则显示0)
排序依据:客户ID
答案 0 :(得分:0)
好的 - 这是第三次我正在为你回答这类问题。在我看来,到目前为止你真的应该能够采取我的一个答案,并调整和放大让它适应你的另一个问题 - 你不同意吗?
所以这里可以找到2007年每位客户的销售数量 - 对于没有任何销售的客户显示0。
-- determine the number of all sales in 2007 for each customer
;WITH SalesPerCustomer AS
(
SELECT
c.CustomerID,
NumberOfSales = ISNULL(COUNT(soh.SalesOrderID), 0)
FROM
Sales.Customer c
LEFT OUTER 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