-1

AdventureWorks2012: Sql 顧客ごとに、2007 年に作成された注文の数を決定します。顧客が 2004 年に注文を作成していない場合、その顧客には 0 を表示します。表示: 顧客 ID、2007 年に作成された注文の数。

4

1 に答える 1

0

私の他の回答と同じアプローチ - CTE (Common Table Expression) を使用して、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 に答える