-1

AdventureWorks2012:Sql 对于每个客户,确定 2007 年创建的订单数。如果客户在 2004 年没有创建任何订单,则为该客户显示 0。显示:客户 ID,2007 年创建的订单数。

4

1 回答 1

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

按销售额降序排列输出,因此您将首先获得销售额最多的客户

于 2013-03-29T12:03:39.280 回答