Vous êtes sur la page 1sur 6

---- Creacin de las tablas en la Base de Datos ---create table Persona( Id_persona varchar(3) primary key, Nombre varchar(40)

not null, Razon_social varchar(25) not null, Telefono varchar(10) not null, Direccion varchar(50) not null, Correo varchar(70) not null, ) select *from Persona create table Producto( Id_producto numeric primary key, Codigo_producto varchar(10) not null, Producto varchar(50) not null, Precio_compra numeric(18,2) not null, Precio_venta numeric(18,2) not null, ) select *from Producto create table Tipo_movimiento( Id_tipo varchar(3) primary key, Descripcion varchar(20) not null, ) select *from Tipo_movimiento create table Cabecera_movimiento( Id_cabecera varchar(3) primary key, Fecha date not null, Factura varchar(3) not null, Id_persona varchar(3), Id_tipo varchar(3), ) select *from Cabecera_movimiento create table Detalle_movimiento( Id_detalle varchar(3) primary key, Id_cabecera varchar(3) not null, Id_producto numeric not null, Precio numeric(18,2) not null, Cantidad numeric not null, ) select *from Detalle_movimiento

---- Creacin de las relaciones entre las tablas ----alter table Cabecera_movimiento add constraint Persona_cab foreign key (Id_persona) references Persona (Id_persona) alter table Cabecera_movimiento add constraint Tipo_cab foreign key (Id_tipo) references Tipo_movimiento (Id_tipo) alter table Detalle_movimiento add constraint Cab_detalle

foreign key (Id_cabecera) references Cabecera_movimiento (Id_cabecera) alter table Detalle_movimiento add constraint Producto_detalle foreign key (Id_producto) references Producto (Id_producto)

---- Insercin de datos en tabla Persona ---select *from Persona insert Into Persona(Id_persona,Nombre,Razon_social,Telefono,Direccion,Correo) values ('01','Diogo','Electronet','0990508622','Guayaquil','diogo_pr@hotmail. es') insert Into Persona(Id_persona,Nombre,Razon_social,Telefono,Direccion,Correo) values ('02','Mila','Computron','0982619873','Quito','mila_laura@hotmail.com' ) insert Into Persona(Id_persona,Nombre,Razon_social,Telefono,Direccion,Correo) values ('03','Maria','Compuhelp','0976451001','Cuenca','maria_migliaz@yahoo.c om') insert Into Persona(Id_persona,Nombre,Razon_social,Telefono,Direccion,Correo) values ('04','Vincenzo','Compuhelp','0900651743','Cuenca','vincen_migliaz@yah oo.com') insert Into Persona(Id_persona,Nombre,Razon_social,Telefono,Direccion,Correo) values ('05','Luis','Ascomsa','0922564810','Salinas','luis_andres@hotmail.com ') insert Into Persona(Id_persona,Nombre,Razon_social,Telefono,Direccion,Correo) values ('06','Lina','Cartimex','0911658728','Guayaquil','lina_nichole@gmail.c om')

---- Insercin de datos en tabla Producto ---select *from Producto insert into Producto(Id_producto,Codigo_producto,Producto) values('01','FX-G41MXE','Placa Base Foxconn G41MXE-V') insert into Producto(Id_producto,Codigo_producto,Producto) values('02','INT-G41CN','Placa Base Intel DG41CN')

insert into Producto(Id_producto,Codigo_producto,Producto) values('03','CPU-E8400','Procesador Intel Core 2 Duo E8400') insert into Producto(Id_producto,Codigo_producto,Producto) values('04','CPU-E8600','Procesador Intel Core 2 Duo E8600') insert into Producto(Id_producto,Codigo_producto,Producto) values('05','CPU-E7500','Procesador Intel Core 2 Duo E7500') insert into Producto(Id_producto,Codigo_producto,Producto) values('06','HD-ST500','Disco Duro Seagate Sata 500 GB') insert into Producto(Id_producto,Codigo_producto,Producto) values('07','GTS-450','Tarjeta de video Nvidia Geforce GTS 450')

---- Insercin de datos en la tabla Tipo_movimiento ---select *from Tipo_movimiento insert into Tipo_movimiento(Id_tipo,Descripcion) values('001','Venta') insert into Tipo_movimiento(Id_tipo,Descripcion) values('002','Compra')

---- Insercin de datos en la tabla Cabecera_movimiento ---select *from Cabecera_movimiento select *from Persona select *from Tipo_movimiento insert into Cabecera_movimiento(Id_cabecera,Fecha,Factura,Id_persona,Id_tipo) values('01','2013-10-12','1','01','001') insert into Cabecera_movimiento(Id_cabecera,Fecha,Factura,Id_persona,Id_tipo) values('02','2013-10-15','2','02','001') insert into Cabecera_movimiento(Id_cabecera,Fecha,Factura,Id_persona,Id_tipo) values('03','2013-10-18','3','01','001') insert into Cabecera_movimiento(Id_cabecera,Fecha,Factura,Id_persona,Id_tipo) values('04','2013-10-20','4','04','002') insert into Cabecera_movimiento(Id_cabecera,Fecha,Factura,Id_persona,Id_tipo) values('05','2013-10-24','5','05','001') insert into Cabecera_movimiento(Id_cabecera,Fecha,Factura,Id_persona,Id_tipo) values('06','2013-10-24','6','01','002')

---- Insercin de datos en la tabla Detalle_movimiento ---select *from Detalle_movimiento select *from Cabecera_movimiento select *from Producto insert into Detalle_movimiento(Id_detalle,Id_cabecera,Id_producto,Precio,Cantidad) values('001','01','01','75.00','4') insert into Detalle_movimiento(Id_detalle,Id_cabecera,Id_producto,Precio,Cantidad) values('002','03','02','85.00','2') insert into Detalle_movimiento(Id_detalle,Id_cabecera,Id_producto,Precio,Cantidad) values('003','04','03','225.00','3') insert into Detalle_movimiento(Id_detalle,Id_cabecera,Id_producto,Precio,Cantidad) values('004','06','04','320.00','2') insert into Detalle_movimiento(Id_detalle,Id_cabecera,Id_producto,Precio,Cantidad) values('005','02','06','85.00','5') insert into Detalle_movimiento(Id_detalle,Id_cabecera,Id_producto,Precio,Cantidad) values('006','03','06','85.00','2')

------------ CONSULTAS -------------- 1) cliente que mas ha comprado ---create procedure sp_cliente as begin select top 1 Pr.Producto, T.Descripcion, (Precio*Cantidad) as Total, P.Nombre from Detalle_movimiento D, Producto Pr, Tipo_movimiento T, Cabecera_movimiento C, Persona P where Pr.Id_producto = D.Id_producto and T.Id_tipo = C.Id_tipo and D.Id_cabecera = C.Id_cabecera and T.Descripcion = 'venta' and P.Id_persona = C.Id_persona order by (Total) desc end exec sp_cliente

---- 2) proveedore al que mas se le ha comprado ---create procedure sp_proveedor as begin

select top 1 Pr.Producto, T.Descripcion, (Precio*Cantidad) as Total, P.Nombre from Detalle_movimiento D, Producto Pr, Tipo_movimiento T, Cabecera_movimiento C, Persona P where Pr.Id_producto = D.Id_producto and T.Id_tipo = C.Id_tipo and D.Id_cabecera = C.Id_cabecera and T.Descripcion = 'Compra' and P.Id_persona = C.Id_persona order by (Total) desc end exec sp_proveedor

----- 3) El producto mas vendido ---create procedure sp_vendido as begin select top 1 Pr.Producto as Producto_mas_vendido, Precio, Cantidad, T.Descripcion, (precio*cantidad) as Total from Detalle_movimiento D, Producto Pr, Tipo_movimiento T, Cabecera_movimiento C, Persona P where Pr.Id_producto = D.Id_producto and T.Id_tipo = C.Id_tipo and D.Id_cabecera = C.Id_cabecera and T.descripcion = 'Venta' and P.Id_persona = C.Id_persona order by (cantidad) desc end exec sp_vendido

----- 4) El producto mas comprado ---create procedure sp_comprado as begin select top 1 Pr.Producto as Producto_mas_vendido, Precio, Cantidad, T.Descripcion, (precio*cantidad) as Total from Detalle_movimiento D, Producto Pr, Tipo_movimiento T, Cabecera_movimiento C, Persona P where Pr.Id_producto = D.Id_producto and T.Id_tipo = C.Id_tipo and D.Id_cabecera = C.Id_cabecera and T.descripcion = 'Compra' and P.Id_persona = C.Id_persona order by (cantidad) desc end exec sp_comprado

create trigger stock on Detalle_movimiento for delete as begin declare @Id_producto numeric(18,0) declare @Cantidad numeric(18,0) select @Id_producto = Id_producto from deleted select @Cantidad = sum(case when C.Id_tipo = 1 then Cantidad else(Cantidad*(1))end) from Detalle_movimiento D, Cabecera_movimiento C where C.Id_cabecera = D.Id_cabecera and D.Id_producto = @Id_producto update Producto set stock = (stock - @Cantidad) where Id_producto = @Id_producto end select *from Producto Delete from Detalle_movimiento where Id_detalle = '002' select *from Detalle_movimiento select *from Producto

Vous aimerez peut-être aussi