Está en la página 1de 4

--1.

Obtener el costo promedio de los ingredientes


SELECT AVG(COSTO) AS CostoPromedioIngredientes
FROM INGREDIENTES
--2. Calcular el sueldo promedio de los cargos:
SELECT AVG(SUELDO) AS SueldoPromedioCargos
FROM CARGO
--3.Calcular el precio promedio de las bebidas:
SELECT AVG(PRECIO) AS PrecioPromedioBebidas
FROM BEBIDA
--4.Calcular el costo promedio total de los pedidos:
SELECT AVG(COSTO_TOTAL) AS CostoPromedioTotalPedidos
FROM COMPROBANTE
--5.Calcular la cantidad promedio de bebidas pedidas en cada pedido:
SELECT AVG(CANTIDAD_BEB_PEDIDO) AS CantidadPromedioBebidasPedido
FROM [DETALLE PEDIDO BEBIDA]
--6.Calcular la cantidad promedio de platos pedidos en cada pedido:
SELECT AVG(CANTIDAD_PLA_PEDIDO) AS CantidadPromedioPlatosPedido
FROM [DETALLE PEDIDO PLATO]
--7.Calcular el promedio del costo total de los ingredientes en la fecha 2023-02-
03:
SELECT FECHA_VIGENCIA, AVG(PRECIO_TOTAL_INGR) AS PromedioCostoTotalIngredientes
FROM [DETALLE INGREDIENTES PROVEEDOR]
WHERE FECHA_VIGENCIA = '2023-02-03'
GROUP BY FECHA_VIGENCIA
--8.Calcular el promedio del costo total de los ingredientes por proveedor:
SELECT ID_PROVEEDOR, AVG(PRECIO_TOTAL_INGR) AS PromedioCostoTotalIngredientes
FROM [DETALLE INGREDIENTES PROVEEDOR]
GROUP BY ID_PROVEEDOR
--9.Contar el número de clientes registrados:
SELECT COUNT(*) AS TotalClientes
FROM CLIENTE
--10.Contar el número de pedidos realizados:
SELECT COUNT(*) AS TotalPedidos
FROM PEDIDO
--11.Contar el número de reservas para la fecha (2021-11-30):
SELECT COUNT(*) AS TotalReservas
FROM RESERVACION
WHERE Fecha = '2021-11-30'
--12.Contar el número de empleados por cargo:
SELECT ID_CARGO, COUNT(*) AS TotalEmpleadosPorCargo
FROM PERSONAL
GROUP BY ID_CARGO
--13.Contar el número de clientes que realizaron pedidos desde la fecha(2021-11-
30):
SELECT COUNT(DISTINCT ID_Cliente) AS TotalClientes
FROM PEDIDO
WHERE Fecha >='2021-11-30'
--14.Contar el número de empleados que son de miraflores:
SELECT COUNT(ID_DISTRITO) AS TotalEmpleadosDeMiraflores
FROM PERSONAL
WHERE ID_DISTRITO = 'DT01'
--15.Contar el número de reservas realizadas por un cliente(CL03):
SELECT COUNT(ID_CLIENTE) AS TotalReservasPorCliente
FROM RESERVACION
WHERE ID_Cliente = 'CL03'
--16.Contar el número de platos con un precio superior a 50:
SELECT COUNT(*) AS PlatosCaros
FROM PLATO
WHERE PRECIO > 50
--17.Obtener el salario máximo de los empleados:
SELECT MAX(SUELDO) AS MaximoSalario
FROM CARGO
--18.Obtener la fecha más reciente de una reserva:
SELECT MAX(FECHA) AS UltimaFechaReserva
FROM RESERVACION
--19.Obtener el precio máximo de un plato del menu:
SELECT MAX(PRECIO) AS PRECIOMAXIMO
FROM PLATO
--20.Obtener el maximo gasto que se hizo en un proveedor:
SELECT max(PRECIO_TOTAL_INGR) AS MAXIMOGASTO
FROM [DETALLE INGREDIENTES PROVEEDOR]
--21.Obtener cuando fue la ultima venta:
SELECT MAX(FECHA) AS Ultima_Venta
FROM COMPROBANTE
--22.Obtener cual fue el mayor numero de bebidas en un pedido:
SELECT MAX(CANTIDAD_BEB_PEDIDO) AS CantidadMaxima
FROM [DETALLE PEDIDO BEBIDA]
--23.Obtener el costo máximo de un ingrediente:
SELECT MAX(COSTO) AS CostoMaximo
FROM INGREDIENTES
--24.Cual fue el menor costo de una mesa:
SELECT MIN(COSTO_TOTAL) AS CostoMinimo
FROM COMPROBANTE
--25.Obtener la suma total de los costos de los ingredientes por proveedor:
SELECT NOMBRE, SUM(COSTO) AS TotalCostosIngredientes
FROM [dbo].[INGREDIENTES]
JOIN [dbo].[DETALLE INGREDIENTES PROVEEDOR] ON [dbo].
[INGREDIENTES].id_ingredientes = [dbo].[DETALLE INGREDIENTES
PROVEEDOR].id_ingredientes
GROUP BY NOMBRE
--26.Obtener la suma total de ingresos de todos los años
SELECT YEAR(FECHA) AS Año, SUM(COSTO_TOTAL) AS TotalIngresos
FROM [dbo].[COMPROBANTE]
GROUP BY YEAR(FECHA)
--27.Obtener los nombres de todos los ingredientes suministrados por proveedores
en minúsculas:
SELECT LOWER(INGREDIENTES.NOMBRE) AS NombreIngrediente
FROM INGREDIENTES
JOIN [DETALLE INGREDIENTES PROVEEDOR] ON INGREDIENTES.id_ingredientes = [DETALLE
INGREDIENTES PROVEEDOR].id_ingredientes
--28.Obtener en minuscula todos los empleados que sean cheff
SELECT LOWER(PERSONAL.NOMBRE) AS NombreEmpleado
FROM PERSONAL
INNER JOIN CARGO ON PERSONAL.ID_CARGO = CARGO.ID_CARGO
WHERE CARGO.TIPO= 'CHEF'
--29.Obtener Todos los nombres de los platos en minuscula
SELECT LOWER(PLATO.NOMBRE) AS NombreTipoPlato
FROM PLATO
--30.Obtener los proveedores que tienen más de 8 ingredientes suministrados:
SELECT PROVEEDOR.NOMBRE, COUNT(id_ingredientes) AS TotalIngredientes
FROM [DETALLE INGREDIENTES PROVEEDOR]
INNER JOIN PROVEEDOR ON [DETALLE INGREDIENTES PROVEEDOR].ID_PROVEEDOR=
PROVEEDOR.ID_PROVEEDOR
GROUP BY PROVEEDOR.NOMBRE
HAVING COUNT(id_ingredientes) > 8
--31.Obtener los platos que tienen un precio superior a 30 y han sido ordenados
más de 1 vez:
SELECT PLATO.NOMBRE, PRECIO, COUNT(*) AS TotalOrdenes
FROM PEDIDO
INNER JOIN [DETALLE PEDIDO PLATO] ON PEDIDO.ID_PEDIDO = [DETALLE PEDIDO
PLATO].ID_PEDIDO
INNER JOIN PLATO ON [DETALLE PEDIDO PLATO].ID_PLATO= PLATO.ID_PLATO
GROUP BY PLATO.NOMBRE, PRECIO
HAVING PRECIO > 30 AND COUNT(*) > 1
--32.Obtener Clientes que tienen mas de 1 pedido desde el 2021-10-10
SELECT CLIENTE.NOMBRE, COUNT(CLIENTE.NOMBRE) AS TotalPedidos
FROM PEDIDO
INNER JOIN CLIENTE ON PEDIDO.ID_CLIENTE = CLIENTE.ID_CLIENTE
WHERE PEDIDO.FECHA >= '2021-10-10'
GROUP BY CLIENTE.NOMBRE
HAVING COUNT(*) > 0
--33.EMPLEADOS QUE HAN ATENDIDO A MAS DE 5 CLIENTES
SELECT PERSONAL.NOMBRE, COUNT(DISTINCT ID_CLIENTE) AS TotalClientes
FROM PEDIDO
INNER JOIN PERSONAL ON PEDIDO.ID_PERSONAL = PERSONAL.ID_PERSONAL
GROUP BY PERSONAL.NOMBRE
HAVING COUNT(DISTINCT ID_CLIENTE) > 5
--34.BUSCAR LAS BEBIDAS CON UN PRECIO SUPERIOR A 20
SELECT NOMBRE, MAX(PRECIO) AS Precio
FROM BEBIDA
GROUP BY NOMBRE
HAVING MAX(PRECIO) > 20
--35.OBTENER LOS CLIENTES QUE GASTARON MAS DE 200 SOLES:
SELECT CLIENTE.NOMBRE, SUM(COMPROBANTE.COSTO_TOTAL) AS TotalGastado
FROM PEDIDO
LEFT JOIN COMPROBANTE ON PEDIDO.ID_PEDIDO = COMPROBANTE.ID_PEDIDO
INNER JOIN CLIENTE ON PEDIDO.ID_CLIENTE = CLIENTE.ID_CLIENTE
GROUP BY CLIENTE.NOMBRE
HAVING SUM(COMPROBANTE.COSTO_TOTAL) > 200
--36.obtener los platos que han sido pedidos mas de una vez
SELECT PLATO.NOMBRE, COUNT(PLATO.NOMBRE) AS TotalPedidos
FROM [DETALLE PEDIDO PLATO]
INNER JOIN PLATO ON [DETALLE PEDIDO PLATO].ID_PLATO=PLATO.ID_PLATO
GROUP BY PLATO.NOMBRE
HAVING COUNT(PLATO.NOMBRE) > 1
--37.Obtener los clientes que han realizado al menos un pedido en los últimos 30
días y han gastado más de 50 soles en total:
SELECT CLIENTE.NOMBRE, SUM(COMPROBANTE.COSTO_TOTAL) AS TotalGastado
FROM PEDIDO
LEFT JOIN COMPROBANTE ON PEDIDO.ID_PEDIDO = COMPROBANTE.ID_PEDIDO
LEFT JOIN CLIENTE ON PEDIDO.ID_CLIENTE = CLIENTE.ID_CLIENTE
WHERE PEDIDO.FECHA >= DATEADD(DAY, -30, GETDATE())
GROUP BY CLIENTE.NOMBRE
HAVING SUM(COMPROBANTE.COSTO_TOTAL) > 50
--38.Obtener los Proveedores que se les hizo una venta de mas de 150:
SELECT PROVEEDOR.NOMBRE, max(PRECIO_TOTAL_INGR) as MaximaVenta
FROM [DETALLE INGREDIENTES PROVEEDOR]
inner join PROVEEDOR on [DETALLE INGREDIENTES
PROVEEDOR].ID_PROVEEDOR=PROVEEDOR.ID_PROVEEDOR
GROUP BY PROVEEDOR.NOMBRE
HAVING max(PRECIO_TOTAL_INGR)> 150
--39.Obtener cuanto se ha gastado en cada proveedor:
SELECT PROVEEDOR.NOMBRE, sum(PRECIO_TOTAL_INGR) as MaximaVenta
FROM [DETALLE INGREDIENTES PROVEEDOR]
inner join PROVEEDOR on [DETALLE INGREDIENTES
PROVEEDOR].ID_PROVEEDOR=PROVEEDOR.ID_PROVEEDOR
GROUP BY PROVEEDOR.NOMBRE
--40.Obtener cual es el promedio que se gasta cada cliente en el restaurante:
SELECT CLIENTE.NOMBRE , AVG(COMPROBANTE.COSTO_TOTAL) AS PROMEDIO
FROM COMPROBANTE
INNER JOIN PEDIDO ON COMPROBANTE.ID_PEDIDO = PEDIDO.ID_PEDIDO
INNER JOIN CLIENTE ON PEDIDO.ID_CLIENTE = CLIENTE.ID_CLIENTE
GROUP BY CLIENTE.NOMBRE
--41.Obtener cual es el promedio de compra a cada proveedor:
SELECT PROVEEDOR.NOMBRE , AVG([DETALLE INGREDIENTES PROVEEDOR].PRECIO_TOTAL_INGR)
AS PROMEDIO
FROM [DETALLE INGREDIENTES PROVEEDOR]
INNER JOIN PROVEEDOR ON [DETALLE INGREDIENTES
PROVEEDOR].ID_PROVEEDOR=PROVEEDOR.ID_PROVEEDOR
GROUP BY PROVEEDOR.NOMBRE
--42.Obtener la venta menor de cada proveedor:
SELECT PROVEEDOR.NOMBRE , MIN( [DETALLE INGREDIENTES
PROVEEDOR].PRECIO_TOTAL_INGR) AS MENOR
from [DETALLE INGREDIENTES PROVEEDOR]
INNER JOIN PROVEEDOR ON [DETALLE INGREDIENTES
PROVEEDOR].ID_PROVEEDOR=PROVEEDOR.ID_PROVEEDOR
GROUP BY PROVEEDOR.NOMBRE
ORDER BY PROVEEDOR.NOMBRE desc
--43.Obtener los proveedores que nos vendieron en total entre 1000 y 1200 soles :

SELECT PROVEEDOR.NOMBRE, sum(PRECIO_TOTAL_INGR) as MaximaVenta


FROM [DETALLE INGREDIENTES PROVEEDOR]
inner join PROVEEDOR on [DETALLE INGREDIENTES
PROVEEDOR].ID_PROVEEDOR=PROVEEDOR.ID_PROVEEDOR
GROUP BY PROVEEDOR.NOMBRE
HAVING SUM(PRECIO_TOTAL_INGR) BETWEEN 1000 AND 1200

--44.Cuantos platos tienen los mismos precios


SELECT PRECIO ,COUNT(*) AS CantidadPlatos
FROM [dbo].[PLATO]
GROUP BY PRECIO
--45.Cuantos empleados tienen un sueldo mayor a 2000 y los mismos sueldos
SELECT SUELDO,COUNT(*) AS CantidadEmpleados
FROM PERSONAL
LEFT JOIN CARGO ON PERSONAL.ID_CARGO = CARGO.ID_CARGO
GROUP BY SUELDO
HAVING SUELDO > 2000
--46.Obtener la cantidad de clientes con al menos una reserva
SELECT COUNT(*) AS CantidadClientes, ID_CLIENTE
FROM RESERVACION
GROUP BY ID_CLIENTE
HAVING COUNT(*) > 0
--47.Obtener la cantidad de platos vendidos en más de 1 órden:
SELECT COUNT(*) AS CantidadPlatos, PLATO.NOMBRE
FROM [DETALLE PEDIDO PLATO]
INNER JOIN PLATO ON [DETALLE PEDIDO PLATO].ID_PLATO= PLATO.ID_PLATO
GROUP BY PLATO.NOMBRE
HAVING COUNT(*) > 1
--48.Obtener la cantidad de empleados con un cargo igual a "CHEF":
SELECT CARGO.TIPO, COUNT(*) AS CantidadEmpleados
FROM PERSONAL
INNER JOIN CARGO ON PERSONAL.ID_CARGO = CARGO.ID_CARGO
GROUP BY CARGO.TIPO
HAVING CARGO.TIPO = 'CHEF'
--49.Obtener la cantidad de empleados que tienen sueldo entre 2000 y 3000
SELECT COUNT(*) AS CantidadEmpleados
FROM PERSONAL
INNER JOIN CARGO ON PERSONAL.ID_CARGO = CARGO.ID_CARGO
WHERE SUELDO BETWEEN 2000 AND 3000
--50.Obtener la cantidad de platos con un nombre que contenga la palabra "pollo"
y un precio mayor a $12:

SELECT COUNT(*) AS CantidadPlatos


FROM PLATO
WHERE LOWER(PLATO.NOMBRE) LIKE '%pollo%' AND PRECIO > 12

También podría gustarte