/**************************************************************************
CONSULTAS EN LA BASE DE DATOS HELADERIA
En este script se muestran los comandos para realizar consultas en la Base de datos Heladeria
Autor: Mauricio Medina
*************************************************************************/
-- =========================================
-- 1 Nombre y Apellido del heladero que mas ha vendido en el mes de Octubre del 2014
-- Autores: Mauricio Medina, Renato Garces
-- Fecha de Creacion: 20/11/2014
-- Fecha de Modificacion:
-- =========================================
select h.nombre,h.apellido,v.fecha,v.total
from heladero h inner join Venta v
on h.cedula=v.codigo_Heladero
where (v.total)=(
select MAX(total)
from Venta
where MONTH(fecha)=10 and YEAR(fecha)=2014 )
go
--Respuesta en pantalla
-- =========================================
-- 2 Nombre del helado mas vendido
-- Autores: Mauricio Medina, Renato Garces
-- Fecha de Creacion: 20/11/2014
-- Fecha de Modificacion:
-- =========================================
create view TotalVentaHelados_vw
as
select h.nombre,sum(dv.cantidad)as 'Total'
from Helado h inner join DetalleVenta dv
on h.codigo_Helado=dv.codigo_Helado
group by h.nombre
go
--Al ejecutar el comando creamos una vista TotalventaHelados_vw
--en la cual vamos a tener dos filas una con nombre y otra con total
select nombre, Total
from TotalVentaHelados_vw
where Total=(select MAX(total)
from TotalVentaHelados_vw
)
Go
--Al ejecutar dicho comando nos desplegara el nombre del helado mas
--vendido y su total
--Respuesta en pantalla
-- =========================================
-- 3 Nombre de usuario que mas registros ha ingresado
-- Autores: Mauricio Medina, Renato Garces
-- Fecha de Creacion: 20/11/2014
-- Fecha de Modificacion:
-- =========================================
create view TotalUsuarios1_vw
as
select usuario
from dbo.Sector
union all
select usuario
from dbo.Heladero
union all
select usuario
from dbo.Venta
union all
select usuario
from dbo.DetalleVenta
union all
select usuario
from dbo.Helado
union all
select usuario
from dbo.TipoHelado
union all
select usuario
from dbo.SaborHelado
union all
select usuario
from dbo.Sabor
go
--Con dicho comando vamos a crear una vista la cual llamamos
--totalUsuarios1_vw en la cual vamos a unir todos los usuarios que an
--ingresado registrosen las diferentes tablas,teniendo un total de 200
create view total_Usuario2_vw
as
select usuario as 'usuario', COUNT(*) as 'numeroRegistros'
from TotalUsuarios1_vw
group by usuario
go
--Con dichos comandos creamos una vista total_Usuarios2 de la cual
--contamos los campos iguales en este caso van a ser los nombres de los
--usuarios que se repitan en total vamos a tener 30 usuarios que an
--registrado diferentes campos en diferentes tablas
select top 1 numeroRegistros, usuario
from total_Usuario2_vw
order by numeroRegistros desc
--Con el siguiente comando ordenamos de forma descendente para que nos
--ponga el valor maximo en numeroRegistros al principio y con top 1
--filtramos al decir que solo necesitamos el primer registro, y este sera --el que mas registros a ingresado
--Respuesta en pantalla
-- =========================================
-- 4 Nombre de usuario que menos registros ha ingresado.
-- Autores: Mauricio Medina, Renato Garces
-- Fecha de Creacion: 20/11/2014
-- Fecha de Modificacion:
-- =========================================
create view TotalUsuarios1_vw
as
select usuario
from dbo.Sector
union all
select usuario
from dbo.Heladero
union all
select usuario
from dbo.Venta
union all
select usuario
from dbo.DetalleVenta
union all
select usuario
from dbo.Helado
union all
select usuario
from dbo.TipoHelado
union all
select usuario
from dbo.SaborHelado
union all
select usuario
from dbo.Sabor
go
--Con dicho comando vamos a crear una vista la cual llamamos
--totalUsuarios1_vw en la cual vamos a unir todos los usuarios que an
--ingresado registrosen las diferentes tablas,teniendo un total de 200
create view total_Usuario2_vw
as
select usuario as 'usuario', COUNT(*) as 'numeroRegistros'
from TotalUsuarios1_vw
group by usuario
go
--Con dichos comandos creamos una vista total_Usuarios2 de la cual
--contamos los campos iguales en este caso van a ser los nombres de los
--usuarios que se repitan en total vamos a tener 30 usuarios que an
--registrado diferentes campos en diferentes tablas
select top 1 numeroRegistros, usuario
from total_Usuario2_vw
order by numeroRegistros asc
--Con el siguiente comando ordenamos de forma ascendente para que nos
--ponga el valor minimo en numeroRegistros al principio y con top 1
--filtramos al decir que solo necesitamos el primer registro, y este sera --el que menos registros a ingresado,es muy parecido al ejercicio
--anterior lo unico que cambia es al ordenar de forma ascendente
--para que primero nos salgael minimo valor de ingresos
--Respuesta en pantalla
-- =========================================
-- 5 El promedio de ventas mensual por heladero.
-- Autores: Mauricio Medina, Renato Garces
-- Fecha de Creacion: 20/11/2014
-- Fecha de Modificacion:
-- =========================================
select 'Heladero: '+h.nombre+h.apellido,v.fecha, avg (v.total)as 'Promedio'
from Heladero h inner join Venta v
on h.cedula = v.codigo_Heladero
group by h.nombre,h.apellido,v.fecha
having MONTH(v.fecha)in(1,2,3,4,5,6,7,8,9,10,11,12)
order by v.fecha asc
--Respuesta en pantalla