销售和营销方案
与客户和销售相关的信息是 AdventureWorks 示例数据库的重要组成部分。本主题详细介绍示例数据库中的客户、主要客户和销售表的架构以及用于说明表关系的查询示例。
客户类型
作为自行车生产公司,Adventure Works Cycles 拥有两种客户:
- 个人。即,从 Adventure Works Cycles 在线商店购买产品的消费者。
- 商店。即,从 Adventure Works Cycles 销售代表处购买产品后进行转售的零售店或批发店。
每位客户在 Customer 表中都有一条记录。CustomerType 列指示客户是个人消费者 (CustomerType= 'I') 还是商店 (CustomerType= 'S')。这些客户类型所特有的数据分别在 Individual 表和 Store 表中进行维护。
客户类型 | 主要表 | 客户数量 | 其他信息 |
---|---|---|---|
个人 |
18,484 |
已对销售和统计数据进行处理,以应用于数据挖掘方案。 统计数据(收入、爱好、车辆数目等)以 xml 格式存储在 Individual 表的 Demographics 列中。 |
|
商店 |
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