Share via


판매 및 마케팅 시나리오

고객 및 판매 관련 정보는 AdventureWorks 예제 데이터베이스에서 중요한 부분입니다. 이 항목에서는 예제 데이터베이스에 표시되어 있는 고객, 주요 고객 및 판매 테이블의 스키마, 그리고 테이블 관계를 보여 주는 예제 쿼리에 대해 설명합니다.

고객 유형

자전거 제조 회사인 Adventure Works Cycles의 고객은 두 가지 유형으로 구분됩니다.

  • 개인 - Adventure Works Cycles 온라인 상점에서 제품을 구매하는 소비자입니다.

  • 대리점 - Adventure Works Cycles 영업 담당자를 통해 제품을 구매하여 판매하는 소매 대리점이나 도매 대리점입니다.

Customer 테이블에는 각 고객마다 하나의 레코드가 있습니다. CustomerType 열은 고객이 개인 소비자(CustomerType= 'I')인지 또는 대리점(CustomerType= 'S')인지 나타냅니다. 이러한 고객 유형별 데이터는 각각 IndividualStore 테이블에 유지됩니다.

고객 유형

주요 테이블

고객 수

추가 정보

Individual

Person.Contact

Sales.Customer

Sales.Individual

Sales.SalesOrderHeader

Sales.SalesOrderDetail

18,484

판매 및 통계 데이터는 데이터 마이닝 시나리오에 대비하여 일정한 추세를 나타냅니다.

수입, 취미, 차량 보유 수 등의 통계 데이터는 Individual 테이블의 Demographics 열에 xml 데이터로 저장됩니다.

Store

Person.Contact

Sales.Customer

Sales.Store

Sales.StoreContact

Sales.SalesOrderHeader

Sales.SalesOrderDetail

701

이 데이터는 Analysis Services 시나리오에 대비하여 일정한 추세를 나타냅니다.

대리점은 크기에 따라 대형, 중형 및 소형으로 구분됩니다.

통계 데이터는 xml 데이터로 저장됩니다.

대리점 연락처는 Adventure Works Cycles 영업 담당자와 연락하는 대리점 직원입니다. 예를 들어 Adventure Works Cycles 영업 사원이 연락하는 일반적인 연락처로는 대리점 소유자나 구매 관리자가 있습니다.

다음 쿼리를 사용하여 고객 데이터를 확인할 수 있으며 고객 테이블 관계를 살펴 볼 수 있습니다.

1. 개인 고객(소비자) 보기

다음 예에서는 개인 소비자(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

2. 개인 고객 주소 데이터 보기

다음 예에서는 모든 개인 고객의 이름과 주소를 나열합니다.

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

3. 소매 대리점 또는 도매 대리점 고객 보기

다음 예에서는 대리점(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

4. 대리점별 대리점 연락처 보기

다음 예에서는 모든 대리점 고객의 이름 및 각 대리점을 대신하여 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

5. 대리점별 매출 보기

다음 예에서는 대리점 고객 및 해당 대리점의 판매 주문을 나열합니다.

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

6. 위치별 대리점 보기

다음 예에서는 대리점 고객의 이름, 구/군/시, 시/도 및 국가/지역을 인쇄합니다.

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