Produktszenario
Dieses Thema enthält Details über die in der AdventureWorks-Beispieldatenbank dargestellten Produktinformationen, eine Liste produktionsgestützter Tabellen sowie Beispielabfragen, die häufig vorkommende Beziehungen zwischen Tabellen veranschaulichen.
Produktübersicht
Als Fahrradhersteller bietet Adventure Works Cycles die folgenden vier Produktgruppen an:
Fahrräder, die vom Unternehmen Adventure Works Cycles gefertigt werden.
Fahrradteile, bei denen es sich um Verschleißteile handelt, wie z. B. Räder, Pedalen oder Bremseinrichtungen.
Fahrradbekleidung, die von anderen Herstellern zum Wiederverkauf an Adventure Works Cycles-Kunden erworben wird.
Fahrradzubehör, das von anderen Herstellern zum Wiederverkauf an Adventure Works Cycles-Kunden erworben wird.
Produkttabellen
Die folgende Tabelle enthält eine kurze Beschreibung der in den Produkttabellen gespeicherten Daten.
Schema.Table |
Inhalt |
Kommentar |
---|---|---|
Eine Liste der zur Fertigung von Fahrrädern und Fahrradhalbfabrikaten verwendeten Bauteile. |
Die ProductAssemblyID-Spalte stellt das übergeordnete oder primäre Produkt dar, während die ComponentID-Spalte die untergeordneten Teile bzw. Einzelteile zur Montage der übergeordneten Baugruppe enthält. |
|
Die in den lokalisierten Produktbeschreibungen verwendeten Sprachen. |
Produktbeschreibungen sind in den Sprachen Arabisch, Englisch, Französisch, Hebräisch, Vereinfachtes Chinesisch und Thailändisch verfügbar. |
|
Eine Liste der Standorte in Adventure Works Cycles, an denen Produkte und Teile als Lagerteile gespeichert werden. So werden beispielsweise Farben und Lacke sowohl am Standort Farbenlager im Warenlager als auch am Arbeitsplatz Lackierung, an dem die Fahrradrahmen lackiert werden, gespeichert. |
|
|
Informationen über jedes von Adventure Works Cycles verkaufte oder zur Fertigung von Adventure Works Cycles-Fahrrädern und -Fahrradteilen verwendete Produkt. |
In der FinishedGoodsFlag-Spalte wird angegeben, ob ein Produkt verkauft wurde. Produkte, die nicht verkauft werden, sind Bauteile eines Produkts, das verkauft wird. So wird beispielsweise ein Fahrrad verkauft, während das für den Fahrradrahmen erforderliche Blech nicht verkauft wird. |
|
Die allgemeinste Produktklassifizierung. Beispiele sind Fahrrad oder Zubehör. |
|
|
Die Produktkosten im Verlauf der Zeit. |
|
|
Eine vollständige Produktbeschreibung in verschiedenen Sprachen. |
Produktbeschreibungen werden in den Sprachen Arabisch, Englisch, Französisch, Hebräisch, Vereinfachtes Chinesisch und Thailändisch angeboten. |
|
Der Lagerbestand von Produkten nach ihrem Standort. Siehe Production.Location weiter oben. |
|
|
Der Listenpreis von Produkten im Verlauf der Zeit. |
|
|
Den Produkten zugeordnete Produktmodelle. Beispiele sind Mountain-100 oder LL Touring Frame. |
Die CatalogDescription-Spalte enthält zusätzliche Produktinformationen bei Verwendung des xml-Datentyps. Die Instructions-Spalte enthält Anweisungen zur Produktfertigung bei Verwendung des xml-Datentyps. |
|
Querverweise zwischen Produktmodellen, Produktbeschreibungen und den Sprachen, in die die Beschreibungen lokalisiert wurden. |
|
|
Abbildungen der von Adventure Works Cycles verkauften Produkte. |
Die Bilder werden mithilfe des varbinary(max)-Datentyps gespeichert. |
|
Kundenbewertungen von Adventure Works Cycles-Produkten. |
|
|
Unterkategorien von Produktkategorien. So sind beispielsweise Mountainbikes, Cityräder und Tourenräder Unterkategorien der Kategorie Fahrrad. |
|
Beispiele
Mithilfe der folgenden Abfragen können Sie Produktdaten anzeigen und sich mit den Beziehungen innerhalb von Produkttabellen vertraut machen.
A. Anzeigen von Produkten nach Kategorie, Unterkategorie und Modell
Im folgenden Beispiel werden alle Produkte nach Kategorie, Unterkategorie und Modell aufgelistet. Nicht kategorisierte Produkte sind nicht enthalten. Wenn alle Produkte angezeigt werden sollen, ändern Sie die Verknüpfung für ProductCategory zu einer vollständigen Verknüpfung.
USE AdventureWorks;
GO
SELECT PC.Name AS Category, PSC.Name AS Subcategory,
PM.Name AS Model, P.Name AS Product
FROM Production.Product AS P
FULL JOIN Production.ProductModel AS PM ON PM.ProductModelID = P.ProductModelID
FULL JOIN Production.ProductSubcategory AS PSC ON PSC.ProductSubcategoryID = P.ProductSubcategoryID
JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID
ORDER BY PC.Name, PSC.Name ;
GO
B. Anzeigen von Produktbeschreibungen nach Produktmodell
Produktbeschreibungen werden für jedes einzelne Produktmodell erstellt. Jede Beschreibung ist in verschiedenen Sprachen verfügbar. Im folgenden Beispiel werden die Produktbeschreibungen in den einzelnen Sprachen angezeigt.
Hinweis |
---|
Einige Sprachen werden nur dann richtig angezeigt, wenn die unterstützenden Dateien für zusätzliche Sprachen mit komplexen Schriftzeichen und ostasiatische Sprachen installiert wurden. Informationen zur Installation dieser Dateien finden Sie in der Windows-Dokumentation unter den Regions- und Sprachoptionen. |
USE AdventureWorks;
GO
SELECT PM.ProductModelID, PM.Name AS [Product Model], Description, PL.CultureID, CL.Name AS Language
FROM Production.ProductModel AS PM
JOIN Production.ProductModelProductDescriptionCulture AS PL
ON PM.ProductModelID = PL.ProductModelID
JOIN Production.Culture AS CL ON CL.CultureID = PL.CultureID
JOIN Production.ProductDescription AS PD
ON PD.ProductDescriptionID = PL.ProductDescriptionID
ORDER BY PM.ProductModelID ;
GO
C. Anzeigen einer einstufigen Stückliste für ein übergeordnetes Produkt
Im folgenden Beispiel werden alle Bauteile angezeigt, die zum Erstellen eines bestimmten übergeordneten Produkts verwendet werden: ProductAssemblyID
USE AdventureWorks;
GO
WITH Parts(AssemblyID, ComponentID, PerAssemblyQty, EndDate, ComponentLevel) AS
(
SELECT b.ProductAssemblyID, b.ComponentID, b.PerAssemblyQty,
b.EndDate, 0 AS ComponentLevel
FROM Production.BillOfMaterials AS b
WHERE b.ProductAssemblyID = 800
AND b.EndDate IS NULL
UNION ALL
SELECT bom.ProductAssemblyID, bom.ComponentID, p.PerAssemblyQty,
bom.EndDate, ComponentLevel + 1
FROM Production.BillOfMaterials AS bom
INNER JOIN Parts AS p
ON bom.ProductAssemblyID = p.ComponentID
AND bom.EndDate IS NULL
)
SELECT AssemblyID, ComponentID, Name, PerAssemblyQty, EndDate,
ComponentLevel
FROM Parts AS p
INNER JOIN Production.Product AS pr
ON p.ComponentID = pr.ProductID
ORDER BY ComponentLevel, AssemblyID, ComponentID;
GO
Siehe auch