Share via


採購與供應商案例

在 Adventure Works Cycles 中,採購部門會購買用來製造 Adventure Works Cycles 自行車的原料和零件;而且 Adventure Works Cycles 也會購買要零售的產品,例如自行車運動服,以及水壺及打氣筒之類的自行車配備。關於這些產品及向其購買之供應商的資訊都存放在 AdventureWorks 範例資料庫。

此主題提供關於範例資料庫中出現之供應商的詳細資料、主要供應商相關資料表的結構描述圖表,以及示範資料表關聯性的範例查詢。

供應商與採購資料表

下表包含這些資料表內儲存之資料的簡短說明。

Schema.Table

包含這種內容

註解

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 資料表。

範例

您可以使用下列查詢來檢視採購及供應商的資料,並熟悉採購及供應商資料表的關聯性。

A. 依地點檢視供應商

以下範例會列出供應商及其地址。

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

B. 依供應商檢視提供的產品

下列範例會列出供應商提供給 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

C. 依供應商檢視供應商連絡人

下列範例會列出供應商連絡人。供應商連絡人是 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

D. 依供應商檢視採購項目

下列範例顯示供應商及其相關的採購訂單。

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