Documente Academic
Documente Profesional
Documente Cultură
Adventure Works Cycles, la empresa ficticia en la que se basan las bases de datos de ejemplo
AdventureWorks, es una gran empresa de fabricacin multinacional. La empresa fabrica y vende
bicicletas de metal y de metal compuesto en los mercados de Norteamrica, Europa y Asia. Si
bien su sede central de operaciones se encuentra en Bothell, Washington, con 290 empleados, en
toda su base de mercado tiene distribuidos varios equipos regionales de ventas.
En el ao 2000, Adventure Works Cycles compr una pequea planta de fabricacin, Importadores
Neptuno, situada en Mxico. Importadores Neptuno fabrica varios subcomponentes muy
importantes para la lnea de productos de Adventure Works Cycles. Estos subcomponentes se
envan a la sede de Bothell para el ensamblado final del producto. En el ao 2001, Importadores
Neptuno pas a ser el nico fabricante y distribuidor del grupo de productos de bicicletas de paseo.
Tras un ao fiscal con muy buenos resultados, Adventure Works Cycles est intentando ampliar su
cuota de mercado dirigiendo sus ventas a sus mejores clientes, ampliando la disponibilidad de sus
productos en un sitio web externo, y reduciendo los costos de venta a travs de costos de
produccin ms bajos.
Tipos de cliente
Como empresa de fabricacin de bicicletas, Adventure Works Cycles tiene dos tipos de cliente:
Individuos: clientes que compran productos de la tienda en lnea de Adventure Works
Cycles.
Tiendas: tiendas de venta al por menor o al por mayor que compran a los representantes de
ventas de Adventure Works Cycles productos para la reventa.
La tabla Customer contiene un registro para cada cliente. La columna CustomerType indica si el
cliente es un individuo (CustomerType= 'I') o una tienda (CustomerType= 'S'). Los datos
especficos de estos tipos de cliente se mantienen en las tablas Individual y Store, respectivamente.
Nmero
Tipo de
Tablas principales de Informacin adicional
cliente
clientes
Ejemplos
Puede utilizar las consultas siguientes para ver datos de cliente y para familiarizarse con las
relaciones existentes entre las tablas de clientes.
A. Mostrar clientes individuales (consumidores)
En el ejemplo siguiente se devuelven el nombre y los apellidos de todos los clientes clasificados
como clientes individuales (CustomerType = 'I').
SQL
USE AdventureWorks;
GO
SELECT FirstName, LastName
FROM Person.Contact AS C
JOIN Sales.Individual AS I
ON C.ContactID = I.ContactID
JOIN Sales.Customer AS Cu
ON I.CustomerID = Cu.CustomerID
WHERE Cu.CustomerType = 'I'
ORDER BY LastName, FirstName ;
GO
B. Mostrar datos de direccin de clientes individuales
En el ejemplo siguiente se enumeran los nombres y las direcciones de todos los clientes
individuales.
SQL
USE AdventureWorks;
GO
SELECT I.CustomerID, C.FirstName, C.LastName, A.AddressLine1, A.City,
SP.Name AS State, CR.Name AS CountryRegion
FROM Person.Contact AS C
JOIN Sales.Individual AS I ON C.ContactID = I.ContactID
JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = I.CustomerID
JOIN Person.Address AS A ON A.AddressID = CA.AddressID
JOIN Person.StateProvince SP ON
SP.StateProvinceID = A.StateProvinceID
JOIN Person.CountryRegion CR ON
CR.CountryRegionCode = SP.CountryRegionCode
ORDER BY I.CustomerID ;
GO
C. Mostrar clientes de tipo tienda de venta al por menor y venta al por mayor
En el ejemplo siguiente se devuelve el nombre todos los clientes clasificados como tienda
(CustomerType = 'S').
SQL
USE AdventureWorks;
GO
SELECT Name
FROM Sales.Store AS S
JOIN Sales.Customer AS C
ON S.CustomerID = C.CustomerID
WHERE C.CustomerType = N'S'
ORDER BY Name ;
GO
GO
Tablas de producto
La tabla siguiente contiene una breve descripcin de los datos que se almacenan en las tablas
relacionadas con el producto.
Production.ProductCategory Clasificacin ms
general de los
productos. Por
ejemplo, bicicleta o
accesorio.
Ejemplos
Puede utilizar las consultas siguientes para ver datos de los productos y para familiarizarse con las
relaciones existentes entre las tablas de productos.
A. Mostrar productos por categora, subcategora y modelo
En el ejemplo siguiente se enumeran los productos por categora, subcategora y modelo. Los
productos que no estn clasificados no se incluyen. Para incluir todos los productos, cambie la
unin de ProductCategory por una unin completa.
SQL
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
Nota
En Adventure Works Cycles, el departamento de compras adquiere las materias primas y las piezas
que se utilizan para fabricar las bicicletas de Adventure Works Cycles. Adventure Works Cycles
tambin adquiere productos para la reventa, como equipamiento para bicicletas y complementos,
como botellas para el agua y bombas de aire. La informacin sobre estos productos y los
proveedores de los que se obtienen se almacena en la base de datos de ejemplo AdventureWorks.
En este tema se proporcionan detalles acerca de los proveedores representados en la base de datos
de ejemplo, un diagrama de esquema de las tablas principales relacionadas con los proveedores, y
consultas de ejemplo que muestran relaciones comunes existentes entre las tablas.
Incluye
este tipo
Esquema.Tabla Comentarios
de
contenido
Production.ProductVend Correlacio
or na los
proveedore
s con los
productos
que
suministra
n.
Un mismo
producto
puede ser
suministra
do por ms
de un
proveedor,
y un
proveedor
puede
suministrar
ms de un
producto.
Purchasing.PurchaseOrd Detalles
erDetail del pedido
de compra,
como los
productos
pedidos, la
cantidad y
el precio
unitario.
Purchasing.Vendor Detalles
sobre los
proveedore
s, como el
nombre
del
proveedor
y el
nmero de
cuenta.
Ejemplos
Puede utilizar las consultas siguientes para ver datos de compra y proveedor y para familiarizarse
con las relaciones existentes entre las tablas de compra y proveedor.
A. Mostrar proveedores por ubicacin
En el ejemplo siguiente se enumeran los proveedores y sus direcciones.
SQL
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
Escenario de fabricacin
En este tema se proporcionan detalles acerca de la informacin de fabricacin de Adventure Works
Cycles representada en la base de datos AdventureWorks de ejemplo, una lista de las tablas
relacionadas con la fabricacin y consultas de ejemplo que muestran relaciones comunes existentes
entre las tablas.
Tablas de fabricacin
La tabla siguiente contiene una breve descripcin de los datos que se almacenan en las tablas de
fabricacin.
Production.Document Especificaciones de La
ingeniera y otros columna DocumentSummary
documentos tcnicos. utiliza el tipo de
datos varchar(max). La
columna Document utiliza el
tipo de datos varbinary(max).
Ejemplos
Puede utilizar las consultas siguientes para ver datos de fabricacin y del producto, y para
familiarizarse con las relaciones existentes entre las tablas de fabricacin.
A. Mostrar una lista de materiales de varios niveles para un producto padre
En el ejemplo siguiente se muestran todos los componentes que se utilizan para crear un producto
padre especfico: ProductAssemblyID.
SQL
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