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