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

codigo mejorado

Revisando el código proporcionado, noto que está bien estructurado pero puede beneficiarse de algunas mejoras y ajustes para garantizar la precisión y claridad. Aquí están algunas sugerencias de mejora:

  1. Corrección del Filtro de Año: Utiliza una comparación de fechas en lugar de LIKE para mayor precisión y eficiencia.

  2. Simplificación de las Condiciones: Ajusta la condición de filtrado (A.CANTIDAD_MAXIMA - A.CANTIDAD_VENDIDA) < 0 para asegurarse de que solo se consideren las ventas inválidas.

  3. Optimización de Nombres de Columnas: Los nombres de las columnas podrían ser más descriptivos para mejorar la legibilidad.

Código Mejorado: SELECT A.DNI, A.NOMBRE, A.MES_AÑO, A.CANTIDAD_VENDIDA - A.CANTIDAD_MAXIMA AS DIFERENCIA, CASE WHEN (A.CANTIDAD_VENDIDA - A.CANTIDAD_MAXIMA) <= 0 THEN 'Venta Válida' ELSE 'Venta Inválida' END AS STATUS_VENTA, ROUND((1 - (A.CANTIDAD_MAXIMA/A.CANTIDAD_VENDIDA)) * 100, 2) AS PORCENTAJE FROM ( SELECT F.DNI, TC.NOMBRE, DATE_FORMAT(F.FECHA_VENTA, "%m - %Y") AS MES_AÑO, SUM(IFa.CANTIDAD) AS CANTIDAD_VENDIDA, MAX(VOLUMEN_DE_COMPRA) / 10 AS CANTIDAD_MAXIMA FROM facturas F INNER JOIN items_facturas IFa ON F.NUMERO = IFa.NUMERO INNER JOIN tabla_de_clientes TC ON TC.DNI = F.DNI WHERE YEAR(F.FECHA_VENTA) = 2018 GROUP BY F.DNI, TC.NOMBRE, DATE_FORMAT(F.FECHA_VENTA, "%m - %Y") ) AS A WHERE (A.CANTIDAD_MAXIMA - A.CANTIDAD_VENDIDA) < 0 AND ROUND((1 - (A.CANTIDAD_MAXIMA / A.CANTIDAD_VENDIDA)) * 100, 2) > 50;

Explicación de las Mejoras:

  1. Filtro de Año:

Usar WHERE YEAR(F.FECHA_VENTA) = 2018 en lugar de AND A.MES_AÑO LIKE "%2018" para mejorar la precisión y eficiencia en la búsqueda de ventas del año 2018.

  1. Simplificación de las Condiciones:

Mantener la lógica (A.CANTIDAD_MAXIMA - A.CANTIDAD_VENDIDA) < 0 y asegurar que las ventas inválidas se evalúen correctamente.

  1. Nombres de Columnas Descriptivos:

Los nombres de las columnas DIFERENCIA, STATUS_VENTA y PORCENTAJE son claros y ayudan a entender mejor el propósito del informe.

1 respuesta

Hola, Javier ,

Gracias por compartir tu código con nosotros. Recuerda que estamos aquí para ayudarte. Si necesitas ayuda, no dudes en buscarnos en el foro.

¡Gracias nuevamente!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!