Scénario Produits
Cette rubrique fournit des détails sur les informations concernant les produits qui sont représentées dans l'exemple de base de données AdventureWorks, une liste de tables liées aux produits et des exemples de requêtes qui illustrent les relations classiques entre les tables.
Présentation du produit
En tant que fabricant de bicyclettes, la société Adventure Works Cycles offre les quatre gammes de produits suivantes :
Les bicyclettes fabriquées dans la société Adventure Works Cycles.
Les composants de bicyclettes qui sont des pièces de rechange, telles que roues, pédales ou freins.
Les bicyclettes achetées par les vendeurs pour être revendues aux clients de la société Adventure Works Cycles.
Les bicyclettes achetées par les vendeurs pour être revendues aux clients de la société Adventure Works Cycles.
Tables de produit
Le tableau suivant contient une brève description des données qui sont stockées dans les tables liées aux produits.
Schéma.Table |
Contient ce type de contenu |
Commentaire |
---|---|---|
Liste de tous les composants utilisés pour fabriquer les bicyclettes et leurs sous-assemblages. |
La colonne ProductAssemblyID représente le produit parent, ou principal, et la colonne ComponentID représente les pièces enfants, ou individuelles, utilisées pour créer l'unité parente. |
|
Langues utilisées dans les descriptions de produit traduites. |
Les descriptions de produit sont disponibles en arable, anglais, français, hébreu, chinois simplifié et Thaï. |
|
Liste des emplacements au sein de la société Adventure Works Cycles dans lesquels les produits et les pièces sont stockés en tant qu'inventaire. Par exemple, la peinture est stockée à la fois dans l'emplacement Paint Storage (Stockage Peinture) de l'entrepôt et dans l'atelier de peinture du poste de charge de fabrication dans lequel les cadres des bicyclettes sont peints. |
|
|
Informations concernant chaque produit vendu par la société Adventure Works Cycles ou utilisé pour fabriquer des bicyclettes et des composants de bicyclettes Adventure Works Cycles. |
La colonne FinishedGoodsFlag indique les produits vendus. Les produits non vendus sont des composants d'un produit vendu. Par exemple, si une bicyclette est vendue, en revanche le film métallique utilisé pour la fabrication du cadre de la bicyclette ne l'est pas. |
|
Classification la plus générale des produits. Par exemple, bicyclette ou accessoire. |
|
|
Coût des produits dans le temps |
|
|
Description complète des produits en plusieurs langues |
Les descriptions de produit sont offertes en arable, anglais, français, hébreu, chinois simplifié et Thaï. |
|
Niveau de stock des produits en fonction de leur emplacement. Reportez-vous plus haut à la section Production.Location. |
|
|
Prix courant des produits dans le temps |
|
|
Modèles de produit associés aux produits. Par exemple, Cadre VTT-100 ou LL Tourisme. |
La colonne CatalogDescription fournit des informations de produits supplémentaires en utilisant le type de données xml. La colonne Instructions fournit des instructions pour la fabrication des produits en utilisant le type de données xml. |
|
Références croisées entre les modèles de produit, les descriptions de produit et les langues dans lesquelles la description a été traduite. |
|
|
Images des produits vendus par la société Adventure Works Cycles. |
Les images sont stockées par le biais du type de données varbinary(max). |
|
Consultation clients des produits de la société Adventure Works Cycles |
|
|
Sous-catégories des catégories de produits. Par exemple, Mountain (VTT), Road (Route) et Touring (Randonnée) sont des sous-catégories de la catégorie générique Bike (Bicyclette). |
|
Exemple
Vous pouvez utiliser les requêtes suivantes pour consulter les données de produit et vous familiariser avec les relations de tables de produits.
A. Consultation des produits par catégorie, sous-catégorie et modèle
L'exemple suivant affiche la liste de tous les produits par catégorie, sous-catégorie et modèle. Les produits non classés ne figurent pas dans la liste. Pour afficher tous les produits, modifiez la jointure sur ProductCategory par une jointure complète.
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. Consultation des descriptions de produit par modèle de produit
Une description de produit est créée pour chaque modèle de produit. Chaque description est disponible en plusieurs langues. L'exemple suivant montre toutes les descriptions de produit dans chaque langue.
[!REMARQUE]
Certaines langues ne s'affichent pas correctement si les fichiers supplémentaires de prise en charge linguistique des scripts complexes et des langues d'Asie orientale ne sont pas installés. Pour installer ces fichiers, consultez les Options régionales et linguistiques dans la documentation Windows.
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. Consultation d'une liste de nomenclatures d'un seul niveau pour un produit parent
L'exemple suivant affiche tous les composants qui sont utilisés pour créer un produit parent spécifique : 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
Voir aussi