販売およびマーケティングのシナリオ

顧客と販売に関連する情報は、AdventureWorks のサンプル データベースの中でも重要な意味を持ちます。このトピックでは、サンプル データベースで表される顧客、主な顧客テーブルと販売テーブルのスキーマ、およびテーブル リレーションシップを示すサンプル クエリの詳細について説明します。

顧客のタイプ

自転車製造会社である Adventure Works Cycles の顧客には、2 つのタイプがあります。

  • 個人。Adventure Works Cycles のオンライン ストアから製品を購入する消費者です。
  • 店舗。Adventure Works Cycles の販売担当者から再販用として製品を購入する小売り店または卸問屋です。

Customer テーブルには、各顧客に対して 1 つのレコードが含まれます。CustomerType 列は、顧客が個人顧客 (CustomerType= 'I') と店舗 (CustomerType= 'S') のどちらであるかを示します。これらの顧客タイプに関する固有のデータは、Individual テーブルおよび Store テーブルで、それぞれ保持されます。

顧客タイプ 主なテーブル 顧客数 追加情報

個人

Person.Contact

Sales.Customer

Sales.Individual

Sales.SalesOrderHeader

Sales.SalesOrderDetail

18,484

販売データと人口統計データは、データ マイニング シナリオに対応するように傾向が設定されています。

人口統計データ (収入、趣味、車の所有台数など) は xml データとして、Individual テーブルの Demographics 列に格納されます。

店舗

Person.Contact

Sales.Customer

Sales.Store

Sales.StoreContact

Sales.SalesOrderHeader

Sales.SalesOrderDetail

701

データは、Analysis Services シナリオに対応するように傾向が設定されています。

店舗は、規模に応じて大、中、小に分類されます。

xml データとして格納された人口統計データです。

店舗連絡先は、Adventure Works Cycles の販売担当者が連絡を取り合う店舗従業員です。たとえば、Adventure Works Cycles の販売担当者に対応する一般的な連絡先は、店舗の所有者や購買担当者になります。

次のクエリを使用し、顧客データを表示することによって、顧客テーブルのリレーションシップについて詳細に理解することができます。

A. 個人顧客 (消費者) の表示

次の例では、個人顧客 (CustomerType = 'I') として分類された各顧客の氏名が返されます。

USE AdventureWorks;
GO
SELECT FirstName, LastName
FROM Person.Contact AS C
    JOIN Sales.Individual AS I
        ON C.ContactID = I.ContactID
    JOIN Sales.Customer AS Cu
        ON I.CustomerID = Cu.CustomerID
WHERE Cu.CustomerType = 'I'
ORDER BY LastName, FirstName ;
GO

B. 個人顧客の住所データの表示

次の例では、すべての個人顧客の氏名と住所の一覧が表示されます。

USE AdventureWorks;
GO
SELECT I.CustomerID, C.FirstName, C.LastName, A.AddressLine1, A.City, 
    SP.Name AS State, CR.Name AS CountryRegion
FROM Person.Contact AS C
    JOIN Sales.Individual AS I ON C.ContactID = I.ContactID
    JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = I.CustomerID
    JOIN Person.Address AS A ON A.AddressID = CA.AddressID
    JOIN Person.StateProvince SP ON 
        SP.StateProvinceID = A.StateProvinceID
    JOIN Person.CountryRegion CR ON 
        CR.CountryRegionCode = SP.CountryRegionCode
ORDER BY I.CustomerID ;
GO

C. 店舗顧客 (小売り店または卸問屋) の表示

次の例では、店舗 (CustomerType = 'S') として分類された各顧客の名前が返されます。

USE AdventureWorks;
GO
SELECT Name
FROM Sales.Store AS S
    JOIN Sales.Customer AS C
        ON S.CustomerID = C.CustomerID
WHERE C.CustomerType = N'S'
ORDER BY Name ;
GO
GO

D. 店舗連絡先の表示 (店舗別)

次の例では、すべての店舗顧客の名前、および各会社を代表して Adventure Works Cycles の製品を購入する権限を持つ店舗従業員の氏名と役職が返されます。

USE AdventureWorks;
GO
SELECT S.Name AS Store, C.FirstName, C.LastName, CT.Name AS Title 
FROM Person.Contact AS C 
    JOIN Sales.StoreContact AS SC ON C.ContactID = SC.ContactID
    JOIN Person.ContactType AS CT ON 
        CT.ContactTypeID = SC.ContactTypeID
    JOIN Sales.Store AS S ON S.CustomerID = SC.CustomerID
ORDER BY S.Name ;
GO

E. 売上高の表示 (店舗別)

次の例では、店舗顧客と関連付けられた販売注文の一覧が表示されます。

USE AdventureWorks;
GO
SELECT Name, SalesOrderNumber, OrderDate, TotalDue
FROM Sales.Store AS S
    JOIN Sales.SalesOrderHeader AS SO ON S.CustomerID = SO.CustomerID
ORDER BY Name, OrderDate ;
GO

F. 店舗の表示 (場所別)

次の例では、店舗顧客名、市区町村、都道府県、および国/地域が出力されます。

USE AdventureWorks;
GO
SELECT S.CustomerID, S.Name AS Store, A.City, SP.Name AS State, CR.Name
    AS CountryRegion
FROM Sales.Store AS S
    JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
    JOIN Person.Address AS A ON A.AddressID = CA.AddressID
    JOIN Person.StateProvince SP ON 
        SP.StateProvinceID = A.StateProvinceID
    JOIN Person.CountryRegion CR ON 
        CR.CountryRegionCode = SP.CountryRegionCode
ORDER BY S.CustomerID ;
GO
GO

参照

概念

製品シナリオ
購買および仕入先のシナリオ
製造シナリオ

その他の技術情報

Adventure Works Cycles のビジネス シナリオ

ヘルプおよび情報

SQL Server 2005 の参考資料の入手