Reporte de Ventas SQL
Administración de Base de datos
PROGRAMA:
Ingeniería en sistemas Computacionales
PRESENTA
Alumnos:
Francia Stephany Salas Dorantes
Salvador de la Cruz Cruz
Ernesto Villaseñor Cabrera
Ramon Jesus Mejia Perez
PROFESOR:
SERRANO RODRIGUEZ ROCIO
El Marqués, Querétaro Enero de 2018
DIAGRA DE LA BASE DE DATOS SOBRE VENTAS
CREACION DE LA BD Y TABLAS
create database ProyectoBDD;
use ProyectoBDD;
create table Bitacora(
Id_Movimiento int,
Usuario varchar(20),
Tabla_Operacion varchar(30),
Tipo_Movimiento varchar(35),
Fecha date,
);
create table Cliente(
Id_Cliente int,
Nombre varchar(35),
Apellido_Paterno varchar(35),
Apellido_Materno varchar(35),
Direccion varchar(35),
Ciudad varchar(35),
Telefono varchar(13),
primary key(Id_Cliente)
);
create table Autos(
Numero_Serie int,
Modelo varchar(35),
Financiamiento money,
Stock varchar(35),
Color varchar(10),
Transmicion varchar(10),
Id_Cliente int,
foreign key(Id_Cliente) references Cliente(Id_Cliente) on delete cascade on
update cascade,
primary key(Numero_Serie)
);
create table Vendedores(
Id_Vendedores int,
Nombre varchar(35),
Apellido_Materno varchar(35),
Apellido_Paterno varchar(35),
Direccion varchar(35),
Ciudad varchar(35),
Telefono varchar(13),
primary key(Id_Vendedores)
);
create table Ventas(
Id_Venta int,
Id_Vendedor int,
Id_Cliente int,
Unidades int,
Monto_Total float,
primary key(Id_Venta),
foreign key(Id_Vendedor) references Vendedores(Id_Vendedores) on delete
cascade on update cascade
);
create table Registro(
Id_Registro int,
Fecha date,
Id_Venta int,
Numero_Serie int,
primary key(Id_Registro),
foreign key(Numero_Serie) references Autos(Numero_Serie) on delete cascade on
update cascade,
foreign key(Id_Venta) references Ventas(Id_Venta) on delete cascade on update
cascade
);
create table Cuenta_Banco(
Id_Cuenta int,
Id_Genera int,
Tipo_Cuenta varchar(35),
Banco varchar(35),
Id_Cliente int,
primary key(Id_Cuenta),
foreign key(Id_Cliente) references Cliente(Id_Cliente) on delete cascade on
update cascade ,
foreign key(Id_Genera) references Registro(Id_Registro)
);
create table Pedido_Unidades(
Id_Pedido int,
Unidades int,
Comision int
);
Triggers de la BD
Seguridad de la BD, cada que hay una inserción se ejecuta un disparador dependiendo
de la tabla e inserta en una tabla llamada bitácora la cual registra el tipo de cliente
que realizo dicha operación y la fecha.
go
create trigger Segurity_Cliente
on Cliente
after insert
as
begin
insert into Bitacora(Usuario, Tabla_Operacion,Tipo_Movimiento,Fecha)
values(SUSER_NAME(),'Cliente','Insert Client',GETDATE());
end
go
create trigger Segurity_Banc
on Cuenta_Banco
after insert
as
begin
insert into Bitacora(Usuario, Tabla_Operacion,Tipo_Movimiento,Fecha)
values(SUSER_NAME(),'Cuenta_Banco','Insert Segurity Bank',GETDATE());
end
go
create Trigger Segurity_Registry
on Registro
after insert
as
begin
insert into Bitacora(Usuario, Tabla_Operacion,Tipo_Movimiento,Fecha)
values(SUSER_NAME(),'Registro','Insert Registry',GETDATE());
end
go
create trigger Segurity_Cars
on Autos
after insert
as
begin
insert into Bitacora(Usuario, Tabla_Operacion,Tipo_Movimiento,Fecha)
values(SUSER_NAME(),'Autos','Insert auto',GETDATE());
end
go
create trigger Segurity_Ventas
on Ventas
after insert
as
begin
insert into Bitacora(Usuario, Tabla_Operacion,Tipo_Movimiento,Fecha)
values(SUSER_NAME(),'Ventas','Insert Ventas',GETDATE());
end
go
create trigger Segurity_Vendedores
on Vendedores
after insert
as
begin
insert into Bitacora(Usuario, Tabla_Operacion,Tipo_Movimiento,Fecha)
values(SUSER_NAME(),'Vendedores','Insert Vendedor',GETDATE());
end
Pro seguridad de la BD existe un disparador que tiene como función mandar un mensaje
a la hora de eliminar un tabla y si no tienes los permisos necesarios como usuario te
saldrá el mensaje.
go
create trigger Users
on database
for Drop_table
as
begin
print'consulta al admin';
end
triggers con operaciones aritmeticas
El disparador, muestra al id del vendedor y las unidades mayores a 100 agregando una
extra al pedido.
go
create trigger VentasVol
on Ventas
after insert
as
begin
select Id_Vendedor, Unidades + 1 from Ventas where Monto_Total >=100;
end
El disparador, muestra al id del vendedor y las unidades mayores a 200 agregando una
extra al pedido.
go
create trigger VentasVo2
on Ventas
after insert
as
begin
select Id_Vendedor, Unidades + 2 from Ventas where Monto_Total >=200;
end
El disparador muestra el Id y el monto total haciendo un descuento del 20% mayores a
100 unidades
go
create trigger VentasVo3
on Ventas
after insert
as
begin
select Id_Vendedor, Monto_Total * 0.20 from Ventas where Unidades > 100;
end
El disparador muestra el Financiamiento y haciendo un descuento del 20% mayores a
$10000
go
create trigger VentasVo4
on Autos
after insert
as
begin
select Financiamiento from Autos *0.10 from Autos where Financiamiento >
10000;
end
Registros de la BD
insert into Cliente values(1, 'Cristhian', 'Alvarez', 'Cano', 'La tuna',
'Badirapuato', 123123242);
insert into Vendedores values(1,'Jaime','Guevon', 'Teporocho', 'La tuna',
'Badiraguato', 12345667);
insert into Ventas values(1,1,1,1,200000.00);
insert into Autos values(1,'Jetta 2.0T', 50000.00, 'S5','Rojo lava','Automatico',1);
insert into Genera values(1, '2018-03-15',1,1);
insert into CuentaBanco values (5,1, 'Debito', 'Bancomer', 1);
insert into Cliente values(2, 'Diego', 'Telles', 'Aguilar', 'Atongo', 'El Marques',
123153242);
insert into CuentaBanco values (3,2, 'Credito', 'Banamex', 2);
insert into Vendedores values(2,'Erick','Mejia', 'Aguas', 'Cuevas :v', 'Pinal de
Amoles', 123434667);
insert into Autos values(2,'Jetta 2.0', 50000.00, 'S5','Rojo','Manual',2);
insert into Genera values(2, '2018-03-15',2,2);
insert into Ventas values(2,2,2,2,250000.00);
insert into Cliente values(3,'armando','mota','de
la','satelite','queretaro',11114508);
insert into Vendedores values(3,'kakaroto','sanchez', 'medina', 'loma bonita',
'celaya', 98765);
insert into Ventas values (3,3,3,3,340000.00);
insert into Autos values (3,'jetta 2.0',50000.00,'s5','negro','estandar',3);
insert into Genera values (3,'2018-04-12',3,3);
insert into CuentaBanco values (4,3,'credito','banorte',3);
insert into Cliente values(4,'rosa','huerta','del
campo','tiznada','queretaro',442945);
insert into Vendedores values(4,'rocky','balboa', 'stallone', 'lomas', 'queretaro',
9326543);
insert into Ventas values (4,4,4,2,340000.00);
insert into Autos values (4,'jetta 2.0',50000.00,'s5','negro','estandar',4);
insert into Genera values (4,'2018-04-12',4,4);
insert into CuentaBanco values (1,4,'credito','banorte',4);
insert into Cliente values(5,'marco','sierra','del
sol','tiznada','queretaro',444695);
insert into Vendedores values(5,'monsamo','benito', 'guerra', 'de la cruz',
'queretaro', 362783);
insert into Ventas values (5,5,5,1,640000.00);
insert into Autos values (5,'beatle',25000.00,'s5','purpurina','manual',5);
insert into Genera values (5,'2018-04-16',5,5);
insert into CuentaBanco values (6,5,'credito','banorte',5);
insert into Cliente values(6,'diego','cortes','alverez','soliz','queretaro',465495);
insert into Vendedores values(6,'flabia','maria', 'contreras', 'correguidora',
'queretaro', 647783);
insert into Ventas values (6,6,6,2,240000.00);
insert into Autos values (6,'beatle',25000.00,'s5','verde','manual',6);
insert into Genera values (6,'2018-04-16',6,6);
insert into CuentaBanco values (7,6,'credito','banorte',6);
insert into Cliente values(7,'dora','marselin','diaz','marques','queretaro',75495);
insert into Vendedores values(7,'memo','dadillo', 'olvera', 'cerritocolorado',
'queretaro', 865783);
insert into Ventas values (7,7,7,1,210000.00);
insert into Autos values (7,'jetta 2.0',25000.00,'s5','roble','estandar',7);
insert into Genera values (7,'2018-04-11',7,7);
insert into CuentaBanco values (8,7,'credito','banamex',7);
insert into Cliente values(8,'botas','molina','del
pajaro','queretaro','queretaro',82631);
insert into Vendedores values(8,'sergey','fornic', 'sido', 'cerritocolorado',
'queretaro', 63019);
insert into Ventas values (8,8,8,1,260000.00);
insert into Autos values (8,'jetta 2.0',26000.00,'s5','cobre','estandar',8);
insert into Genera values (8,'2018-04-15',8,8);
insert into CuentaBanco values (9,8,'credito','banamex',8);
insert into Cliente values(9,'Ricardo','molina','Martinez','El
Marquez','Queretaro',4423445323);
insert into Vendedores values(9,'Zaide','Gamez', 'Hernandez', 'El
Regugio','Queretaro',4434234354);
insert into Ventas values (9,9,9,100,160000.00);
insert into Autos values (9,'jetta',29000.00,'s5','blanco','estandar',9);
insert into Genera values (9,'2018-05-25',9,9);
insert into CuentaBanco values (10,9,'credito','santander',9);
insert into Cliente
values(10,'Rene','Sanchez','Molina','Zibata','queretaro',4423554452);
insert into Vendedores values(10,'sergey','fornic', 'sido', 'cerritocolorado',
'queretaro', 4423124534);
insert into Ventas values (10,10,10,1,220000.00);
insert into Autos values (10,'jetta 2.0',22000.00,'s5','azul','Automatico',10);
insert into Genera values (10,'2018-05-15',10,10);
insert into CuentaBanco values (11,10,'credito','bancomer',10);
insert into Cliente
values(11,'Zamuel','Casas','Hernandez','queretaro','queretaro',4423554534);
insert into Vendedores values(11,'sergey','fornic', 'sido', 'cerritocolorado',
'queretaro', 4423124389);
insert into Ventas values (11,11,11,200,260000.00);
insert into Autos values (11,'Polo',26000.00,'s5','blanco','estandar',11);
insert into Genera values (11,'2018-05-5',11,11);
insert into CuentaBanco values (12,11,'credito','banamex',11);
insert into Cliente
values(12,'Salvador','Casas','Alfaro','queretaro','queretaro',4422345434);
insert into Vendedores values(12,'sergey','fornic', 'sido', 'cerritocolorado',
'queretaro', 4423124389);
insert into Ventas values (12,12,12,1,260000.00);
insert into Autos values (12,'Polo',26000.00,'s5','negro','Automatico',12);
insert into Genera values (12,'2018-05-22',12,12);
insert into CuentaBanco values (13,12,'credito','bancomer',13);
insert into Cliente
values(13,'Ernesto','Cabrera','Villaseñor','queretaro','queretaro',4422345434);
insert into Vendedores values(13,'beto','cabrera', 'cabrera', 'el refugio',
'queretaro', 4423124399);
insert into Ventas values (13,13,13,1,360000.00);
insert into Autos values (13,'Jetta',36000.00,'s5','negro','Estandar',13);
insert into Genera values (13,'2018-05-22',13,13);
insert into CuentaBanco values (13,12,'credito','bancomer',13);
insert into Cliente
values(14,'Salvador','Casas','Alfaro','queretaro','queretaro',4422345434);
insert into Vendedores values(14,'beto','cabrera', 'cabrera', 'el refugio',
'queretaro', 4423124399);
insert into Ventas values (14,14,14,300,460000.00);
insert into Autos values (14,'Jetta',46000.00,'s5','rojo','Estandar',14);
insert into Genera values (14,'2018-05-22',14,14);
insert into CuentaBanco values (14,13,'credito','bancomer',14);
insert into Cliente
values(15,'Salvador','Casas','Alfaro','queretaro','queretaro',4422345434);
insert into Vendedores values(15,'beto','cabrera', 'cabrera', 'el refugio',
'queretaro', 4423124399);
insert into Ventas values (15,15,15,1,460000.00);
insert into Autos values (15,'Jetta',46000.00,'s5','rojo','Estandar',15);
insert into Genera values (15,'2018-05-22',14,14);
insert into CuentaBanco values (15,14,'credito','Banamex',15);
Consultas
Muestra la lista de vendedores y la cantidad de unidades vendidos y el monto total
de la venta
select Nombre,Apellido_Paterno,Unidades, Monto_Total from Vendedores inner join
Ventas on Vendedores.Id_Vendedores =Ventas.Id_Vendedor;
Muestra el nombre del vendedor y fecha de dicha venta(Factura)
select V.Nombre,Ve.Unidades,R.Fecha,R.Numero_Serie from Vendedores as V inner join
Ventas as Ve on V.Id_Vendedores =Ve.Id_Vendedor
inner join Registro as R on R.Id_Venta=Ve.Id_Venta;
---Muestra los datos del vendedor y la venta que realizo
Select V.Nombre,V.Apellido_Paterno,V.Telefono,Ve.Unidades,C.Nombre,
C.Apellido_Paterno from Vendedores as V inner join Ventas as Ve on V.Id_Vendedores
=Ve.Id_Vendedor inner join Cliente as C on C.Id_Cliente=Ve.Id_Cliente;
Cliente/Servidor
El Usuario user1 es el servidor.
El usuario “user2” es solo un cliente con permisos de escritura y lectura.
El usurario Franc es un cliente el cual tiene permisos de lectura y escritura.