Produktionsszenario
Dieses Thema enthält Details über die in der AdventureWorks-Beispieldatenbank dargestellten Produktionsdaten von Adventure Works Cycles, eine Liste produktionsgestützter Tabellen sowie Beispielabfragen, die häufig vorkommende Beziehungen zwischen Tabellen veranschaulichen.
Produktionsübersicht
Die AdventureWorks-Beispieldatenbank enthält Tabellen, die die folgenden Standardproduktionsbereiche unterstützen:
Produktionsprozesse:
Stückliste: Führt die Produkte auf, die in einem anderen Produkt verwendet werden oder enthalten sind.
Arbeitsaufträge: Produktionsaufträge nach Arbeitsplatz.
Standorte: Legt die Hauptproduktions- und Hauptlagerbereiche fest, wie z. B. Rahmenformung, Lackierung, Teilmontage usw.
Produktions- und Produktmontageanweisungen nach Arbeitsplatz.
Produktbestandsliste: Physische Position eines Produkts im Warenlager oder Produktionsbereich sowie die verfügbare Menge in diesem Bereich.
Technische Dokumentation: Technische Spezifikationen und Wartungsunterlagen für Fahrräder oder Fahrradteile.
Produktionstabellen
Die folgende Tabelle enthält eine kurze Beschreibung der in den Produktionstabellen gespeicherten Daten.
Schema.Table |
Inhalt |
Kommentar |
---|---|---|
Eine Liste der zur Fertigung von Fahrrädern und Fahrradhalbfabrikaten verwendeten Bauteile. |
Die Struktur der Stückliste weist ein systeminternes rekursives Verhältnis auf, das Aufschluss über das Verhältnis zwischen einem übergeordneten Produkt und den Bestandteilen des Produkts gibt. Handelt es sich beispielsweise beim übergeordneten Produkt um ein Fahrrad, kann das Bauteil der obersten Ebene ein Rad sein. Das Rad setzt sich aus eigenen Bauteilen zusammen, wie z. B. Reflektoren, Felgen, Speichen, Reifen und Schläuchen. 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 BOM_Level-Spalte verweist auf die Ebene von ComponentID im Verhältnis zu ProductAssemblyID. Im vorhergehenden Beispiel würde die Radmontage den BOM_Level-Wert 1 und würden die zugehörigen Bauteile den BOM_Level-Wert 2 aufweisen. |
|
Technische Spezifikationen und sonstige technische Unterlagen. |
Für die DocumentSummary-Spalte wird der varchar(max)-Datentyp verwendet. Für die Document-Spalte wird der varbinary(max)-Datentyp verwendet. |
|
Abbildungen zur Fahrradfertigung |
Die Abbildungen sind Bestandteil der Produktionsanweisungen, die in der ProductModel-Tabelle gerendert sind. Für diese Spalte wird der xml-Datentyp verwendet. |
|
Eine Liste der Lager- und Produktionsbereiche in Adventure Works Cycles in der die Produkte und Teile als Lagerteile gespeichert sind oder verarbeitet 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. |
|
Der Lagerbestand von Produkten nach ihrem Standort. Siehe Production.Location weiter oben. |
|
|
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. |
|
Eine Liste der häufigsten Gründe für die Aussortierung von Fahrrädern oder Fahrradteilen während des Fertigungsprozesses. So wird beispielsweise der Ausschussgrund 'Lackfehler' verwendet, um einen Fahrradrahmen auzusortieren, dessen Lack nicht richtig ausgehärtet ist. |
In der WorkOrderRouting-Tabelle werden die Ausschussmenge und der Grund für das Aussortieren eines Produkts nachverfolgt. Abhängig vom Schweregrad des Problems muss das Produkt repariert oder ersetzt werden, ehe es an den nächsten Arbeitsplatz transportiert wird. |
|
Definiert die Produkte und die Menge, die gefertigt werden müssen, um aktuelle und prognostizierte Verkaufszahlen zu erfüllen. |
|
|
Die Details der einzelnen Arbeitsaufträge. Dies umfasst die Abfolge der Arbeitsplätze, die ein Produkt im Rahmen der Fertigung oder Montage durchläuft. So werden beispielsweise Fahrradlenker am Arbeitsplatz Rahmenformung gefertigt. Weitere Arbeiten werden am Arbeitsplatz Rahmenschweißung ausgeführt; dann werden die Fahrradlenker an den Arbeitsplatz Teilmontage verschoben und werden dort mit dem Fahrradrahmen verbunden. |
|
Beispiele
Mithilfe der folgenden Abfragen können Sie Produktions- und Produktdaten anzeigen und sich mit den Beziehungen innerhalb von Produktionstabellen vertraut machen.
A. Anzeigen einer mehrstufigen Stückliste für ein übergeordnetes Produkt
Im folgenden Beispiel werden alle Bauteile angezeigt, die zum Erstellen eines bestimmten übergeordneten Produkts verwendet werden:
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
B. Anzeigen der Produktbestandsliste
Im folgenden Beispiel wird die für ein Produkt verfügbare Menge abhängig vom Standort im Warenlager aufgeführt. Produkte können sich an mehreren Standorten befinden.
USE AdventureWorks;
GO
SELECT P.Name AS Product, L.Name AS [Inventory Location],
SUM(PI.Quantity)AS [Qty Available]
FROM Production.Product AS P
JOIN Production.ProductInventory AS PI ON P.ProductID = PI.ProductID
JOIN Production.Location AS L ON PI.LocationID = L.LocationID
GROUP BY P.Name, L.Name
ORDER BY P.Name ;
GO
C. Anzeigen von Arbeitsaufträgen nach Produkten
Im folgenden Beispiel werden alle Arbeitsaufträge für Produkte in den Unterkategorien Mountainbike (1), Cityräder (2) und Tourenräder (3) aufgelistet.
USE AdventureWorks;
GO
SELECT WorkOrderID, P.Name AS Product, OrderQty, DueDate
FROM Production.WorkOrder W
JOIN Production.Product P ON W.ProductID = P.ProductID
WHERE P.ProductSubcategoryID IN (1, 2, 3)
ORDER BY P.Name, DueDate ;
GO
Siehe auch