bdpedidos y ejercicios
TRANSCRIPT
-
7/31/2019 BDPedidos y Ejercicios
1/8
-
7/31/2019 BDPedidos y Ejercicios
2/8
CREATE TABLE [dbo] . [PROVEEDORES]([PROVEEDORID] [int] NOT NULL,[NOMBREPROV] [char] ( 50 ) NOT NULL,[CONTACTO] [char] ( 50 ) NOT NULL,
[CELUPROV] [char] ( 12 ) NULL,[FIJOPROV] [char] ( 12 ) NULL,CONSTRAINT [PK_PROVEEDORES] PRIMARY KEY NONCLUSTERED
( [PROVEEDORID] ) )
GO
CREATE TABLE [dbo] . [CATEGORIAS]([CATEGORIAID] [int] NOT NULL,[NOMBRECAT] [char] ( 50 ) NOT NULL,
CONSTRAINT [PK_CATEGORIAS] PRIMARY KEY NONCLUSTERED ( [CATEGORIAID] ) )
GO
CREATE TABLE [dbo] . [CLIENTES] ([CLIENTEID] [int] NOT NULL,[CEDULA_RUC] [char] ( 10 ) NOT NULL,[NOMBRECIA] [char] ( 30 ) NOT NULL,[NOMBRECONTACTO] [char] ( 50 ) NOT NULL,[DIRECCIONCLI] [char] ( 50 ) NOT NULL,[FAX] [char] ( 12 ) NULL,[EMAIL] [char] ( 50 ) NULL,[CELULAR] [char] ( 12 ) NULL,[FIJO] [char] ( 12 ) NULL,
CONSTRAINT [PK_CLIENTES] PRIMARY KEY NONCLUSTERED ( [CLIENTEID] ) )GO
CREATE TABLE [dbo] . [ORDENES]([ORDENID] [int] NOT NULL,[EMPLEADOID] [int] NOT NULL,[CLIENTEID] [int] NOT NULL,[FECHAORDEN] [datetime] NOT NULL,[DESCUENTO] [int] NULL,
CONSTRAINT [PK_ORDENES] PRIMARY KEY NONCLUSTERED ( [ORDENID]) )
GO
CREATE TABLE [dbo] . [DETALLE_ORDENES]([ORDENID] [int] NOT NULL,[DETALLEID] [int] NOT NULL,[PRODUCTOID] [int] NOT NULL,[CANTIDAD] [int] NOT NULL,
CONSTRAINT [PK_DETALLE_ORDENES] PRIMARY KEY NONCLUSTERED ( [ORDENID], [DETALLEID] ) )
GO
CREATE TABLE [dbo] . [PRODUCTOS]([PRODUCTOID] [int] NOT NULL,[PROVEEDORID] [int] NOT NULL,
-
7/31/2019 BDPedidos y Ejercicios
3/8
-
7/31/2019 BDPedidos y Ejercicios
4/8
-
7/31/2019 BDPedidos y Ejercicios
5/8
-
7/31/2019 BDPedidos y Ejercicios
6/8
-
7/31/2019 BDPedidos y Ejercicios
7/8
-
7/31/2019 BDPedidos y Ejercicios
8/8
/*5.2 Escriba un procedimiento almacenado que reciba como parmetro unnombre de una categora y
devuelve el cdigo del producto de esa categora que tiene msunidades vendidas. */
select * from categoriasselect * from productos select * from detalle_ordenes
DROP PROCEDURE masvendido
CREATE PROCEDURE masvendido @nomcat varchar ( 80 ) ASSELECT 'MAS VENDIDO' = do . productoidFROM detalle_ordenes do join productos p ON do . productoid = p. productoidWHERE cantidad > ( select MAX( SUM( CANTIDAD))from detalle_ordenes do join productos p
on do . productoid = p. productoidjoin categorias con p. categoriaid = c . categoriaidwhere c . nombrecat = @nomcat )RETURN
Exec masvendido 'LACTEOS'
select p. productoid , sum( cantidad ) INTO NUM from productos p join categorias c on
( c . categoriaid =p. categoriaid ) join detalle_ordenes dor on ( p. productoid =dor . productoid )where c . nombrecat =nomCatgroup by descripcion , p. productoidorder by sum DESClimit 1;return num;