구매 및 공급업체 시나리오

Adventure Works Cycles에서는 구매 부서가 Adventure Works Cycles 자전거 제조에 사용되는 원자재와 부품을 구매합니다. Adventure Works Cycles에서는 자전거 의류를 비롯하여 물병 및 펌프와 같은 자전거 액세서리도 구매하여 고객에게 판매합니다. 이러한 제품과 해당 공급업체에 대한 정보가 AdventureWorks 예제 데이터베이스에 저장되어 있습니다.

이 항목에서는 예제 데이터베이스에 표시되어 있는 공급업체, 주요 공급업체 관련 테이블의 스키마 다이어그램 및 공용 테이블 관계를 보여 주는 예제 쿼리에 대해 설명합니다.

Vendor 및 Purchasing 테이블

다음 표에서는 이러한 테이블에 저장되는 데이터에 대해 간략히 설명합니다.

스키마.테이블 포함된 내용 유형 설명

Person.Address

모든 고객에 대한 주소 정보입니다.

고객은 둘 이상의 주소를 가질 수 있습니다. 예를 들어 고객의 요금 청구서 주소와 물건 배달 주소가 다를 수 있습니다.

VendorAddress 연관 테이블은 공급업체를 해당 공급업체 주소에 매핑합니다.

Address 테이블에도 Adventure Works Cycles 직원 및 고객의 주소 정보가 포함되어 있습니다.

Person.Contact

Adventure Works Cycles 구매 담당자가 제품을 주문할 때 연락하는 공급업체 직원 이름입니다.

공급업체는 둘 이상의 연락처를 가질 수 있습니다. 예를 들어 영업 담당자 및 영업 관리자 연락처가 다를 수 있습니다. Adventure Works Cycles 구매 담당자는 영업 담당자를 고객의 기본 연락처로 사용하고 영업 관리자를 보조 연락처로 사용할 수 있습니다.

VendorContact 연관 테이블은 연락처를 해당 공급업체에 매핑합니다.

AdditionalContactInfo 열에는 연락처별로 추가 전화 번호(휴대폰, 팩스 등) 데이터가 포함되어 있습니다. 이 열에는 xml 데이터 형식이 사용됩니다. 자세한 내용은 Contact.AdditionalContactInfo xml 열 정보를 참조하십시오.

Production.ProductVendor

공급업체를 해당 공급업체의 제품에 매핑합니다.

한 제품을 여러 공급업체가 공급하거나 여러 제품을 한 공급업체가 공급할 수 있습니다.

 

Purchasing.PurchaseOrderDetail

주문한 제품, 수량 및 단가 등의 구매 주문 정보

 

Purchasing.PurchaseOrderHeader

지불할 총 금액, 주문 날짜 및 주문 상태 등의 구매 주문 요약 정보

PurchaseOrderHeaderPurchaseOrderDetail 테이블은 마스터-세부 관계를 갖습니다.

Purchasing.ShipMethod

일반적인 제품 발송 방법을 유지하는 데 사용되는 조회 테이블

ShipMethodID 열은 PurchaseOrderHeader 테이블에 포함되어 있습니다.

Purchasing.Vendor

공급업체 이름 및 계좌 번호와 같은 공급업체 정보

 

Purchasing.VendorAddress

고객을 Address 테이블의 주소 정보에 매핑합니다.

주소는 요금 청구소 주소, 집 주소 및 배달 주소와 같이 유형별로 분류됩니다. AddressTypeID 열은 AddressType 테이블에 매핑됩니다.

Purchasing.VendorContact

모든 고객에 대한 주소 정보입니다.

고객은 둘 이상의 주소를 가질 수 있습니다. 예를 들어 고객의 요금 청구서 주소와 물건 배달 주소가 다를 수 있습니다.

이 테이블은 연관 테이블입니다. ContactVendor 테이블을 참조하십시오.

다음 쿼리를 사용하여 구매 및 공급업체 데이터를 확인할 수 있으며 구매 및 공급업체 테이블 관계를 살펴 볼 수 있습니다.

1. 위치별 공급업체 보기

다음 예에서는 공급업체와 해당 공급업체 주소를 나열합니다.

USE AdventureWorks;
GO
SELECT V.VendorID, V.Name AS Vendor, A.AddressLine1, A.AddressLine2, A.City, SP.Name AS State, CR.Name AS Country
FROM Purchasing.Vendor AS V 
    JOIN Purchasing.VendorAddress AS VA ON VA.VendorID = V.VendorID
    JOIN Person.Address AS A on A.AddressID = VA.AddressID
    JOIN Person.StateProvince AS SP on SP.StateProvinceID =         A.StateProvinceID
    JOIN Person.CountryRegion AS CR ON CR.CountryRegionCode = SP.CountryRegionCode
GROUP BY V.VendorID, V.Name, A.AddressLine1, A.AddressLine2, A.City, SP.Name, CR.Name
ORDER BY V.VendorID;
GO

2. 공급업체별 제품 보기

다음 예에서는 공급업체가 Adventure Works Cycles에 공급하는 제품을 나열합니다.

USE AdventureWorks;
GO
SELECT P.ProductNumber, P.Name AS Product, V.Name AS Vendor, PV.LastReceiptCost
FROM Production.Product AS P
    JOIN Purchasing.ProductVendor AS PV ON P.ProductID = PV.ProductID
    JOIN Purchasing.Vendor AS V ON V.VendorID = PV.VendorID
ORDER BY P.Name ;
GO

3. 공급업체별 연락처 보기

다음 예에서는 공급업체 연락처를 나열합니다. 공급업체 연락처는 Adventure Works Cycles 구매 부서 직원이 부품과 제품을 주문할 때 연락하는 공급업체 직원입니다.

GO
SELECT V.Name as Vendor, C.FirstName, C.LastName, CT.Name AS Title 
FROM Person.Contact AS C 
    JOIN Purchasing.VendorContact VC ON C.ContactID = VC.ContactID
    JOIN Person.ContactType CT ON CT.ContactTypeID = VC.ContactTypeID
    JOIN Purchasing.Vendor V ON V.VendorID = VC.VendorID
ORDER BY V.Name;
GO

4. 공급업체별 구매 내용 보기

다음 예에서는 공급업체와 관련 구매 주문을 표시합니다.

USE AdventureWorks;
GO
SELECT V.Name AS Vendor, SUM(PH.TotalDue)AS [Total Purchase],
    AVG(PH.TotalDue)AS [Average Purchase], MIN(PH.TotalDue) 
    AS [Minimum Purchase], MAX(PH.TotalDue)AS [Maximum Purchase] 
FROM Purchasing.Vendor AS V
    JOIN Purchasing.PurchaseOrderHeader AS PH ON V.VendorID = PH.VendorID
GROUP BY V.Name
ORDER BY V.Name;
GO

참고 항목

개념

제조 시나리오
제품 시나리오
판매 및 마케팅 시나리오

관련 자료

Adventure Works Cycles 비즈니스 시나리오

도움말 및 정보

SQL Server 2005 지원 받기