採購與供應商案例
在 Adventure Works Cycles 中,採購部門會購買用來製造 Adventure Works Cycles 自行車的原料和零件;而且 Adventure Works Cycles 也會購買要零售的產品,例如自行車運動服,以及水壺及打氣筒之類的自行車配備。關於這些產品及向其購買之供應商的資訊都存放在 AdventureWorks 範例資料庫。
此主題提供關於範例資料庫中出現之供應商的詳細資料、主要供應商相關資料表的結構描述圖表,以及示範資料表關聯性的範例查詢。
供應商與採購資料表
下表包含這些資料表內儲存之資料的簡短說明。
Schema.Table | 包含這種內容 | 註解 |
---|---|---|
所有客戶的街道地址。 客戶可能會有多個地址。例如,一個客戶可能會有一個帳單寄送地址和一個不同的送貨地址。 |
關聯式資料表 VendorAddress 對應供應商與其地址。 Address 資料表也包含 Adventure Works Cycles 員工及客戶的地址資訊。 |
|
Adventure Works Cycles 採購代理人向其訂購產品的供應商員工姓名。 一個供應商可以有好幾位連絡人。例如,銷售代理人及銷售經理。Adventure Works Cycles 採購代理人可能將銷售代理人視為主要的客戶連絡人,而將銷售經理視為第二連絡人。 |
關聯式資料表 VendorContact 對應連絡人與供應商。 AdditionalContactInfo 資料行包含專屬於連絡人的其他電話號碼 (手機、傳真等)。此資料行為 xml 資料類型。如需詳細資訊,請參閱<關於 Contact.AdditionalContactInfo XML 資料行>。 |
|
對應供應商與其提供的產品。 一種產品可能有多個供應商提供,而一個供應商可能提供多項產品。 |
|
|
採購訂單的詳細資料,如已訂購的產品、數量和單位價格。 |
|
|
採購訂單的摘要資訊,如總金額、訂單日期和訂單狀態。 |
PurchaseOrderHeader 與 PurchaseOrderDetail 資料表一起建立一對多的關聯性。 |
|
用來維護標準運送產品方法的查閱資料表。 |
ShipMethodID 資料行包含於 PurchaseOrderHeader 資料表內。 |
|
關於供應商的詳細資料,如供應商的名稱和帳戶號碼。 |
|
|
連結客戶與 Address 資料表中的地址資訊。 |
地址可以依類型進行分類,如帳單地址、住家地址、送貨地址等。AddressTypeID 資料行對應到 AddressType 資料表。 |
|
所有客戶的街道地址。 客戶可能會有多個地址。例如,一個客戶可能會有一個帳單寄送地址和一個不同的送貨地址。 |
這是關聯式資料表。請參閱 Contact 與 Vendor 資料表。 |
範例
您可以使用下列查詢來檢視採購及供應商的資料,熟悉採購及供應商資料表的關聯性。
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