SELECT X.DNI, X.NOMBRE, X.MES_AÑO, X.CANTIDAD_MAXIMA, X.CANTIDAD_COMPRADA, concat( ROUND(((1-(X.CANTIDAD_MAXIMA/X.CANTIDAD_COMPRADA))*100),1),"%") AS PORCENTAJE_DIFERENCIA,
X.DIFERENCIA, X.ESTADO_VENTA FROM
(
SELECT A.DNI, A.NOMBRE, A.MES_AÑO, A.CANTIDAD_MAXIMA, A.CANTIDAD_COMPRADA,A.CANTIDAD_COMPRADA - A.CANTIDAD_MAXIMA AS DIFERENCIA,
CASE
WHEN A.CANTIDAD_COMPRADA - A.CANTIDAD_MAXIMA <= 0 THEN 'VENTA VALIDA'
ELSE 'VENTA INVALIDA'
END AS ESTADO_VENTA
FROM
(
SELECT F.DNI, TC.NOMBRE, date_format(F.FECHA_VENTA, "%m - %Y") AS MES_AÑO , sum(IFA.CANTIDAD) AS CANTIDAD_COMPRADA , 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 F.DNI = TC.DNI
GROUP BY F.DNI, TC.NOMBRE, date_format(F.FECHA_VENTA, "%m - %Y")
) A) X
WHERE X.ESTADO_VENTA = 'VENTA INVALIDA' AND concat( ROUND(((1-(X.CANTIDAD_MAXIMA/X.CANTIDAD_COMPRADA))*100),1),"%") > 50 AND X.MES_AÑO LIKE '%2018';