Está en la página 1de 8

create database BD_Metro

GO
select * from sys.sysdatabases where Name = 'BD_Metro'
go
USE BD_Metro
go

create table TB_Empleado


(
Id_emp int not null primary key,
nom_emp varchar(50) not null,
apellido_emp varchar(50),
celular int,
direccion varchar(50),
tipo_emp varchar(50)
)
go
create table TB_Cliente
(
Id_cliente int not null primary key,
nom_cli varchar(50) not null,
celular int,
dni int,
direccion varchar(50),
correo varchar(50),
)
go
create table TB_Movimiento
(
Id_mov int not null primary key,
Fecha_Mov date,
Tipo_Mov varchar(20),
NombreProducto varchar(20),
Origen varchar(20),
Destino varchar(20),
Id_emp int not null references TB_Empleado
)
go
create table TB_Producto
(
Id_Produc int not null primary key,
descrip_prod varchar(30) not null,
precio_uni money not null,
Cantidad int,
marca varchar(30)
)
go
create table TB_DetalleMov
(
PrecioUnit float,
Cantidad int,
Id_mov int not null references TB_Movimiento,
Id_Prod int not null references TB_Producto
)
go
create table TB_PreCompra
(
Id_PreC varchar(20) not null primary key,
Fecha date,
Id_Prod int not null references TB_Producto,
Id_cliente int not null references TB_Cliente

)
go
create table TB_Comprobante
(
Id_Comprobante varchar(20) not null primary key,
Id_PreC varchar(20) not null references TB_PreCompra,
FechaC date,
TipoComp varchar(20),
PrecioTotal float

)
go
create table TB_DetallePreCompra
(
Id_PreC varchar(20) not null references TB_PreCompra,
PrecioU float,
Cantidad int,
NombreProducto varchar(20),
)
go
create table TB_Pedido
(
Descripcion varchar(20),
FechaPedido date,
FechaEntrega date,
TotalAPagar float,
Id_emp int not null references TB_Empleado,
Id_Pedido varchar(20) not null primary key
)
go
create table TB_Proveedor
(
RUC int not null primary key,
NombreCompleto varchar(80),
Telefono int not null,
Direccion varchar(50),
Correo varchar(50),
)
go
create table TB_ProductoProvee
(
Id_Produc int not null primary key,
Descripcion varchar(20),
PrecioUnitar float,
Stock int,
RUC int not null references TB_Proveedor
)
go
create table TB_DetallePedido
(
CantidadD int,
PrecioUni float,
Id_Pedido varchar(20) not null references TB_Pedido,
Id_Produc int not null references TB_ProductoProvee
)
go
alter table TB_DetalleMov
add primary key (Id_mov, Id_Prod)
go
alter table TB_DetallePreCompra
add primary key (Id_PreC)
go
alter table TB_DetallePedido
add primary key (Id_Pedido, Id_Produc)
go

insert into TB_Empleado values(2,'Luis','Perez',987654321,'Av. Peru','Jefe de


almacén')
insert into TB_Empleado values(3,'Marco','Rivera',965636657,'Jr.
Puno','Administrativo de recepción')
insert into TB_Empleado values(4,'Pablo','Herrera',934544625,'Urb.
Molina','Controlador de recepción')
insert into TB_Empleado values(5,'Ana','Salas',926534643,'Av. Brasil','Controlador
de expedición')
insert into TB_Empleado values(6,'Stefany','Sifuentes',996545622,'AAHH. Las
Flores','Carretillero de recepción')
insert into TB_Empleado values(7,'Enrique','Oyarce',908790780,'Av. Javier
Prado','Operario de pedidos')
insert into TB_Empleado values(8,'Dante','Salcedo',946878677,'Jr. Las
Fresas','Operario de devoluciones')
insert into TB_Empleado values(9,'Michael','Tovar',986456475,'Jr.
Palmeras','Administrativo de recepción')
insert into TB_Empleado values(10,'Gabriel','Garcia',987456567,'Av. Alfonso
Ugarte','Estibador')
insert into TB_Empleado values(11,'Ruth','Galvez',991188227,'Av. La
mar','Estibador')
insert into TB_Empleado values(12,'Evelin','Quintero',986456475,'Av.
Derby','Despachador')
insert into TB_Empleado values(13,'Victor','Garay',987456567,'Av. Pethit
Tours','Despachador')
insert into TB_Empleado values(14,'Jose','Marquina',991188227,'Av.
Faucet','Despachador')
select * from TB_Empleado

insert into TB_Producto values(101,'Leche',3.8,1590,'Gloria')


insert into TB_Producto values(102,'Fideos',4.2,1870,'Anita')
insert into TB_Producto values(103,'Arroz',3.4,560,'Costeño')
insert into TB_Producto values(104,'Gaseosa',8.9,1210,'INKA KOLA')
insert into TB_Producto values(105,'Yogurt',6.1,410,'Griego')
insert into TB_Producto values(106,'Atun',4.5,1800,'Florida')
insert into TB_Producto values(107,'Galletas',0.8,2390,'Margarita')
insert into TB_Producto values(108,'Aceite',13.8,150,'Primor')
insert into TB_Producto values(109,'Sal',2.0,190,'Marina')
insert into TB_Producto values(110,'Harina',1.6,1290,'Blanca flor')
insert into TB_Producto values(111,'Jabon',3.3,1190,'Neko')
insert into TB_Producto values(112,'Detergente',7.1,234,'ACE')
insert into TB_Producto values(113,'Lejia',3.9,367,'Clorox')
insert into TB_Producto values(114,'Suavizante',9.9,121,'Downy')
insert into TB_Producto values(115,'Pasta dental',4.9,150,'Kolynos')
insert into TB_Producto values(116,'Shampoo',1.8,153,'Pantene')
insert into TB_Producto values(117,'Desodorante',11.9,190,'Axe')
insert into TB_Producto values(118,'Papel Higienico',24.5,120,'Suave')
insert into TB_Producto values(119,'Cuaderno',4.3,1510,'Standford')
insert into TB_Producto values(120,'Mantequilla',8.2,90,'Sello de oro')
insert into TB_Producto values(121,'Avena',3.1,1510,'Quaker')
insert into TB_Producto values(122,'Cereal',6.8,30,'Angel')
select * from TB_Producto

insert into TB_Cliente values(1001,'AQUINO SERPA IRINIA


DANIELA',991188229,12345678,'Urb. La planicie','dani_21@gmail.com')
insert into TB_Cliente values(1002,'BENITO AVILA EDITH
BERTHA',907012945,19811114,'Calle Grau','edith21@gmail.com')
insert into TB_Cliente values(1003,'BRAVO GALVEZ ALFREDO
JAVIER',919977910,23150497,'Av. Angelica Gamarra','javier_184@gmail.com')
insert into TB_Cliente values(1004,'CARHUAS TORRES RAUL
PRUDENCIO',931031524,19979598,'Av. Mexico','raul-1@gmail.com')
insert into TB_Cliente values(1005,'CASTRO DE LA CRUZ KIRK',923655129,07296320,'Av.
Benavides','cruz_4@gmail.com')
insert into TB_Cliente values(1006,'DIONICIO OCHOA ANA
MARIA',921808999,31619357,'Av. Guardia Civil','dani_21@gmail.com')
insert into TB_Cliente values(1007,'HILARIO URETA LUISA
SOFIA',909097237,23204150,'Av. Larco 899','dani_21@gmail.com')
insert into TB_Cliente values(1008,'HUAMAN RODRIGUEZ JOSE NOE
',925545029,21104701,'Jr. Pizarro','dani_21@gmail.com')
insert into TB_Cliente values(1009,'LARREA AYALA CESAR
ARTURO',908614939,25529875,'Av. Jose Balta','dani_21@gmail.com')
insert into TB_Cliente values(1010,'RIVAS SANCHEZ RUBEN
JOSE',925676103,16132432,'Av. Avicion','dani_21@gmail.com')
select * from TB_Cliente

insert into TB_Movimiento


values(10001,'25/10/2022','Recepcion','Leche','Emancipacion','Urb. La planicie',12)
insert into TB_Movimiento values(10002,'25/10/2022','Recepcion','Fideos','Dos de
mayo','Calle Grau',12)
insert into TB_Movimiento values(10003,'25/10/2022','Despacho','Arroz','San
Miguel','Av. Angelica Gamarra',13)
insert into TB_Movimiento
values(10004,'26/10/2022','Recepcion','Gaseosa','Ate','Av. Mexico',14)
insert into TB_Movimiento
values(10005,'26/10/2022','Despacho','Yogurt','Chorrillos','Av. Benavides',13)
insert into TB_Movimiento values(10006,'27/10/2022','Recepcion','Atun','Breña','Av.
Guardia Civil',12)
insert into TB_Movimiento
values(10007,'27/10/2022','Recepcion','Galletas','Ventanilla','Av. Larco 899',14)
insert into TB_Movimiento values(10008,'27/10/2022','Despacho','Aceite','Plaza Lima
Norte','Jr. Pizarro',14)
insert into TB_Movimiento
values(10009,'28/10/2022','Recepcion','Sal','Independencia','Av. Jose Balta',12)
insert into TB_Movimiento values(10010,'28/10/2022','Despacho','Harina','Angelica
Gamarra','Av. Avicion',13)
select * from TB_Movimiento

insert into TB_DetalleMov values(3.8,2,10001,101)


insert into TB_DetalleMov values(4.2,3,10002,102)
insert into TB_DetalleMov values(3.4,4,10003,103)
insert into TB_DetalleMov values(8.9,2,10004,104)
insert into TB_DetalleMov values(6.1,5,10005,105)
insert into TB_DetalleMov values(4.5,7,10006,106)
insert into TB_DetalleMov values(0.8,1,10007,107)
insert into TB_DetalleMov values(13.8,4,10008,108)
insert into TB_DetalleMov values(2.0,2,10009,109)
insert into TB_DetalleMov values(1.6,8,10010,110)
select * from TB_DetalleMov
insert into TB_PreCompra values('PC001','18/10/2022',101,1001)
insert into TB_PreCompra values('PC002','19/10/2022',102,1002)
insert into TB_PreCompra values('PC003','19/10/2022',103,1003)
insert into TB_PreCompra values('PC004','20/10/2022',104,1004)
insert into TB_PreCompra values('PC005','20/10/2022',105,1005)
insert into TB_PreCompra values('PC006','21/10/2022',106,1006)
insert into TB_PreCompra values('PC007','22/10/2022',107,1007)
insert into TB_PreCompra values('PC008','23/10/2022',107,1008)
insert into TB_PreCompra values('PC009','23/10/2022',109,1009)
insert into TB_PreCompra values('PC010','24/10/2022',110,1010)
select * from TB_PreCompra

insert into TB_Comprobante values('C001','PC001','18/10/2022','Boleta',7.4)


insert into TB_Comprobante values('C002','PC002','19/10/2022','Boleta',12.6)
insert into TB_Comprobante values('C003','PC003','19/10/2022','Factura',13.6)
insert into TB_Comprobante values('C004','PC004','20/10/2022','Boleta',17.8)
insert into TB_Comprobante values('C005','PC005','20/10/2022','Boleta',30.5)
insert into TB_Comprobante values('C006','PC006','21/10/2022','Boleta',31.5)
insert into TB_Comprobante values('C007','PC007','22/10/2022','Factura',0.8)
insert into TB_Comprobante values('C008','PC008','23/10/2022','Boleta',55.2)
insert into TB_Comprobante values('C009','PC009','23/10/2022','Boleta',4.0)
insert into TB_Comprobante values('C010','PC010','24/10/2022','Factura',12.8)
select * from TB_Comprobante

insert into TB_DetallePreCompra values('PC001',3.8,2,'Leche')


insert into TB_DetallePreCompra values('PC002',4.2,3,'Fideos')
insert into TB_DetallePreCompra values('PC003',3.4,4,'Arroz')
insert into TB_DetallePreCompra values('PC004',8.9,2,'Gaseosa')
insert into TB_DetallePreCompra values('PC005',6.1,5,'Yogurt')
insert into TB_DetallePreCompra values('PC006',4.5,7,'Atun')
insert into TB_DetallePreCompra values('PC007',0.8,1,'Galletas')
insert into TB_DetallePreCompra values('PC008',13.8,4,'Aceite')
insert into TB_DetallePreCompra values('PC009',2.0,2,'Sal')
insert into TB_DetallePreCompra values('PC010',1.6,8,'Harina')
select * from TB_DetallePreCompra

insert into TB_Pedido values('Leche','20/10/2022','23/10/2022',14280,2,'O-001')


insert into TB_Pedido values('Fideos','20/10/2022','23/10/2022',19980,2,'O-002')
insert into TB_Pedido values('Arroz','20/10/2022','23/10/2022',4060,2,'O-003')
insert into TB_Pedido values('Gaseosa','21/10/2022','24/10/2022',4200,2,'O-004')
insert into TB_Pedido values('Yogurt','21/10/2022','24/10/2022',1120,7,'O-005')
insert into TB_Pedido values('Atun','22/10/2022','25/10/2022',3200,7,'O-006')
insert into TB_Pedido values('Galletas','23/10/2022','26/10/2022',6400,7,'O-007')
insert into TB_Pedido values('Aceite','23/10/2022','26/10/2022',3728.1,2,'O-008')
insert into TB_Pedido values('Sal','24/10/2022','27/10/2022',147,7,'O-009')
insert into TB_Pedido values('Harina','27/10/2022','30/10/2022',2011,7,'O-010')
select * from TB_Pedido

insert into TB_Proveedor values(107756492,'ASCANOA SAPAICO CARLOS


ALFREDO',948775434,'Urb. La planicie','@gmail.com')
insert into TB_Proveedor values(100701294,'AYMA REINOSO OSCAR',965456458,'Calle
Grau','@gmail.com')
insert into TB_Proveedor values(103103152,'BRAVO ESPINOZA GRACIELA
ELVIRA',943565611,'Av. Angelica Gamarra','@gmail.com')
insert into TB_Proveedor values(101539139,'BUSTAMANTE VERGARAY ALEJANDRO
ORLANDO',948775434,'Av. Mexico','@gmail.com')
insert into TB_Proveedor values(102554502,'CALLE REYES MARIA
CARMELA',948775434,'Av. Benavides','@gmail.com')
insert into TB_Proveedor values(102064688,'CARDENAS HUAMAN EPIFANIO',948775434,'Av.
Guardia Civil','@gmail.com')
insert into TB_Proveedor values(101980740,'EGOAVIL TAIPE FELIX JUAN',948775434,'Av.
Larco 899','@gmail.com')
insert into TB_Proveedor values(101998082,'GOMEZ MORENO YSRAEL',948775434,'Jr.
Pizarro','@gmail.com')
insert into TB_Proveedor values(109886898,'HEREDIA MOREY JOSE ROGER',948775434,'Av.
Jose Balta','@gmail.com')
insert into TB_Proveedor values(101999296,'MIRANDA VILCAHUAMAN RAUL',948775434,'Av.
Aviacion','@gmail.com')
select * from TB_Proveedor

insert into TB_ProductoProvee values(901,'Leche',3.4,8900,107756492)


insert into TB_ProductoProvee values(902,'Fideos',3.7,11200,100701294)
insert into TB_ProductoProvee values(903,'Arroz',2.9,4300,103103152)
insert into TB_ProductoProvee values(904,'Gaseosa',8.4,2100,101539139)
insert into TB_ProductoProvee values(905,'Yogurt',5.6,900,102554502)
--insert into TB_ProductoProvee values(906,'Atun',4.0,3400,1686)
insert into TB_ProductoProvee values(907,'Galletas',0.5,18900,101980740)
insert into TB_ProductoProvee values(908,'Aceite',12.9,1090,101998082)
insert into TB_ProductoProvee values(909,'Sal',1.4,450,109886898)
insert into TB_ProductoProvee values(910,'Harina',1.0,3700,101999296)
select * from TB_ProductoProvee

insert into TB_DetallePedido values(2100,3.4,'O-001',901)


insert into TB_DetallePedido values(5400,3.7,'O-002',902)
insert into TB_DetallePedido values(1400,2.9,'O-003',903)
insert into TB_DetallePedido values(500,8.4,'O-004',904)
insert into TB_DetallePedido values(200,5.6,'O-005',905)
--insert into TB_DetallePedido values(800,4.0,'O-006',906)
insert into TB_DetallePedido values(12800,0.5,'O-007',907)
insert into TB_DetallePedido values(289,12.9,'O-008',908)
insert into TB_DetallePedido values(105,1.4,'O-009',909)
insert into TB_DetallePedido values(2011,1.0,'O-010',910)
select * from TB_DetallePedido

--Lista de los productos ordenados por precio


create view Producto_precio
AS
select top 22 Id_Produc As ProductoId, descrip_prod As Nombre, precio_uni As
Precio_Unitario, Cantidad, marca as Marca
from [TB_Producto]
order by precio_uni DESC

select *from Producto_precio

drop view Producto_precio

--Clientes que compraron mas


create view Cliente_Gasto
AS
select top 3 Cli.Id_cliente AS ClienteID,nom_cli AS Nombre ,dni AS DNI,
Comp.PrecioTotal AS Total_Gastado
from [TB_Cliente] Cli inner join TB_PreCompra PC
ON Cli.Id_cliente = PC.Id_cliente
inner join TB_Comprobante Comp
ON PC.Id_PreC = Comp.Id_PreC
order by Comp.PrecioTotal DESC

--Producto mas vendido


create view Producto_MasVendido
AS
select top 3 Pro.Id_produc AS ProductoID,descrip_prod AS Nombre ,DPC.Cantidad AS
CANTIDAD
from [TB_Producto] Pro inner join TB_PreCompra PC
ON Pro.Id_produc = PC.Id_prod
inner join TB_DetallePreCompra DPC
ON PC.Id_PreC = DPC.Id_PreC
order by DPC.Cantidad DESC

--Proveedor que mas le compramos


select top 3 Provee.RUC ,NombreCompleto AS Nombre ,PE.TotalAPagar AS TOTAL_GASTADO
from [TB_Proveedor] Provee inner join TB_ProductoProvee PP
ON Provee.RUC = PP.RUC
inner join TB_DetallePedido DP
ON PP.Id_Produc = DP.Id_Produc
inner join TB_Pedido PE
ON DP.Id_Pedido = PE.Id_Pedido
order by PE.TotalAPagar DESC

--Producto con mas Stock

CREATE VIEW ProductoConMasStock


AS
select top 3 Id_Produc AS ProductoID, precio_uni AS P_Unitario,Cantidad AS
CANTIDAD, marca AS Marca
from TB_Producto
Order By Cantidad DESC

SELECT * from ProductoConMasStock

--Los 3 primeros productos mas caros


CREATE VIEW ProductoMasCostoso
AS
select top 3 Id_Produc AS ProductoID, precio_uni AS P_Unitario,Cantidad AS
CANTIDAD, marca AS Marca
from TB_Producto
Order By P_Unitario DESC

SELECT * from ProductoMasCostoso

--Proveedores que mas le compramos


create view Prove_M
AS
select top 3 Provee.RUC ,NombreCompleto AS Nombre ,PE.TotalAPagar AS TOTAL_GASTADO
from [TB_Proveedor] Provee inner join TB_ProductoProvee PP
ON Provee.RUC = PP.RUC
inner join TB_DetallePedido DP
ON PP.Id_Produc = DP.Id_Produc
inner join TB_Pedido PE
ON DP.Id_Pedido = PE.Id_Pedido
order by PE.TotalAPagar DESC

select *from Prove_M

-- DESPACHOS
create view EmpleadoDespachos
AS
select top 10 emp.Id_emp AS EmpleadoId, nom_emp As Nombre, apellido_emp as
Apellido, mov.Fecha_Mov Fecha_Mov, mov.Destino as Destino
from [TB_Empleado] Emp inner join TB_Movimiento Mov
ON emp.Id_emp = Mov.Id_emp
order by emp.Id_emp asc

drop view EmpleadoDespachos

select *from EmpleadoDespachos

-- Comparacion de precios de productos que vendemos con los que compramos del
proveedor
create view ComparacionPreciosProvee
AS
select top 9 descrip_prod As Producto, precio_uni As Precio_Unitario,
pp.PrecioUnitar as P_Unit_Provee
from [TB_Producto] Pr inner join TB_ProductoProvee PP
ON pr.descrip_prod = pp.Descripcion
order by PR.descrip_prod ASC

select *from ComparacionPreciosProvee

--Comprobantes ordenados por tipo


create view TipoComprobante
AS
select top 10 Id_Comprobante as ComprobanteID, FechaC as Fecha, TipoComp as Tipo
from [TB_Comprobante]
order by TipoComp Asc

select *from TipoComprobante

También podría gustarte