Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Mejora de la consulta

Buenas Estuve realizando las consultas y me quedo la duda donde dice: *Ahora lista solamente a los que tuvieron ventas inválidas en el año 2018 excediendo más del 50% de su límite permitido por mes. *

Asi que mi ejemplo era Siendo A el limite permitido y B el volumen comprado, entonces debemos calcular si se ha excedido por más de 50% el limite Entonces:

  • B - A : nos da en cuanto se ha excedido la compra
  • Para saber si es más del 50% debe ser:
  • ( B - A ) / A > 50%
  • Es decir :
  • B/A - 1 > 1/2
  • Asi que para calcular en cuando se excedió, solamente calculamos la anterior formula:

El codigo seria:

SELECT FASE1.DNI, FASE1.MES_AÑO, FASE1.CANTIDAD_VENDIDA, FASE1.CANTIDAD_MAXIMA,
CASE 
WHEN (FASE1.CANTIDAD_VENDIDA/FASE1.CANTIDAD_MAXIMA -1) > 0.5 
THEN CONCAT("SE EXEDIO EN ",ROUND((FASE1.CANTIDAD_VENDIDA/FASE1.CANTIDAD_MAXIMA -1)*100,2),"%")
ELSE "SE EXCEDIO POR MENOS DE 50%"
END AS TAG_VALIDACION,
FASE1.CANTIDAD_MAXIMA-FASE1.CANTIDAD_VENDIDA AS GAP
FROM 
(
SELECT F.DNI,TC.NOMBRE,
DATE_FORMAT(F.FECHA_VENTA, '%m - %Y') AS MES_AÑO, 
SUM(ITF.CANTIDAD) AS CANTIDAD_VENDIDA,
MAX(TC.VOLUMEN_DE_COMPRA)/10 AS CANTIDAD_MAXIMA
FROM FACTURAS F
INNER JOIN ITEMS_FACTURAS ITF
ON F.NUMERO = ITF.NUMERO
INNER JOIN TABLA_dE_CLIENTES TC
ON TC.DNI = F.DNI
GROUP BY F.DNI, TC.NOMBRE, MES_AÑO
HAVING CANTIDAD_VENDIDA > CANTIDAD_MAXIMA
) FASE1
WHERE MES_AÑO LIKE '%2018' AND (FASE1.CANTIDAD_VENDIDA/FASE1.CANTIDAD_MAXIMA -1) > 0.5
;

A continuación se muestra la tabla resultante: tabla_de_resultados En el problema, la formula calcula el complemento del porcentaje de la diferencia entre lo permitido y lo no permitido. Para saber realmente en cuanto porcentaje X de una cantidad esta sobre la otra exactamente, se debería poder hacer esto:

  • A: Cantidad permitida
  • B: Cantidad comprada
  • X: % de exceso de B sobre A
  • A*X = B - A
  • Pues X nos diría: El exceso de B-A esta X% por encima de A.
  • Y como se dijo anteriormente X es : B/A - 1 Por lo que la respuesta se puede comprobar con multiplicar lo anterior:

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad : Indicando realmente que la tabla siguiente es correcta: Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadSi hay algun error, quedo atento a cualquier respuesta.

1 respuesta

¡Hola Edsel! Gracias por compartir tu duda con nosotros. :)

Revisando tu código, veo que estás utilizando una fórmula para calcular si el exceso de la cantidad vendida sobre el límite permitido es mayor al 50%. Me parece que estás en el camino correcto. Excelente tu actividad colocando en práctica lo que aprendiste en la aula!

Si tienes alguna pregunta sobre el contenido de los cursos, estaremos aquí para ayudarte. Recomiendo que interactúes con el resto de tus compañeros en el Discord.

Si este post te ayudó, por favor, marca como solucionado ✓.