Consultas BD Heladería

 

/**************************************************************************

                        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

--*********************************************************************
--Lista de los heladeros (nombres y apellidos en una sola columna) que han 
--comprado en el mes de Noviembre, ordenados en orden alfabético ascendente.
--**********************************************************************
select a.nombre + ' ' + a.apellido as 'Nombre y apellido'
from Heladero a inner join Venta b
on cedula = codigo_Heladero
where (fecha > '2014-11-01') and (fecha < '2014-12-01')
order by nombre asc
 
 
--****************************************************
--Total de heladeros registrados en la Base de datos. 
--Sugerencia: Use funciones de agregación
--****************************************************
select count (cedula)
from dbo.Heladero
 
 
--*************************************************
--Lista de heladeros (nombres y apellidos) que 
--distribuyen en el sector norte
--*************************************************
select a.nombre , a.apellido 
from Heladero a inner join Sector b
on a.codigo_Sector = b.codigo_Sector
where (referencia = 'norte') 
 
 
--*************************************************
--Lista de los heladeros  fecha de compra que han 
--comprado más de 50 dólares
--*************************************************
select a.nombre , a.apellido , b.fecha
from Heladero a inner join Venta b
on a.cedula = b.codigo_Heladero
where (total>50) 
 
 
--******************************************
--Valor promedio y suma de ventas totales 
--realizadas en el mes de noviembre
--******************************************
select avg (total) as 'Valor Promedio', SUM(total)as 'Suma Ventas'
from dbo.Venta
where (fecha>'2014-10-31' and fecha<'2014-12-01')
 
 
--**********************************************
--Lista de los helados identificando el tipio 
--ordenados descendentemente por el precio
--*********************************************
select a.nombre as 'Nombre helado ' , b.nombre as 'Tipo helado', a.precio as 'Precio'
from Helado a inner join TipoHelado b
on a.codigo_TipoHelado = b.codigo
order by a.precio desc
 
 
--******************************************************
--Lista de helados comprados por Juan Pérez 
--(sustituya el nombre por cualquier heladero) el XX de 
--Noviembre (sustituya XX por una fecha de venta existente)
--*******************************************************
 
select c.nombre as 'Comaira Vaca compro ' 
from  dbo.DetalleVenta a inner join dbo.Venta b--, dbo.Heladero d
on a.codigo_Venta=b.id inner join Helado c
on a.codigo_Helado=c.codigo_Helado 
--where b.fecha='2014-03-28'
where b.fecha='2014-03-28'
 
 
--*******************************************************************
--Código de los helados que nunca han sido vendidos. Sugerencia: 
--use la sentencia except.
--****************************************************************
select Helado.codigo_Helado
from Helado 
except
select DetalleVenta.codigo_Helado
from DetalleVenta 

 

© 2014 Todos los derechos reservados.

Crea una página web gratisWebnode