Necesito un empujoncito con una consulta que necesito hacer, y que no doy con una...
Tengo una tabla llamada TALONES, y la tabla tiene registros de diferentes talones (notas/facturas de compras) de clientes.
Yo necesito saber solo con consultas a MySQL agrupados por cliente el total de las compras hechas por cada cliente en menos de 30 dias, de 31 a 60 dias, de 61 a 90 dias y de más de 90 días.
Mi consulta actual es:
Código SQL:
Ver original
SELECT CONCAT('$', FORMAT(SUM(`T`.`Total`), 2)) AS 'Total', COUNT(`T`.`Folio`) AS 'TotFolios', `T`.`ClienteFiscal`, CONCAT(IFNULL(`C`.`RazonSocial`, ''), IFNULL(CONCAT(`C`.`Nombre`, ' ', `C`.`APaterno`, ' ', `C`.`AMaterno`), '') ) AS `NombreCL` FROM `Talones` AS `T` JOIN `Clientes` AS `C` ON `T`.`ClienteFiscal` = `C`.`ClienteID` WHERE `T`.`Estado` != 0 GROUP BY `T`.`ClienteFiscal` ORDER BY `NombreCL` ASC
Y esto me arroja la información que necesito pero en la sumatoria me da el total global, y necesito discriminar los rangos para tener 5 totales al final, total30, total60, total90 y total90mas y totalglobal
La tabla TALONES por su puesto tiene un campo del tipo timestamp con el formato YYYU-MM-DD HH:MM:SS (2018-07-19 02:27:00 por ejemplo).
He intentado lo sigiente:
Código SQL:
Ver original
SELECT CONCAT('$', FORMAT(SUM(`T`.`Total`), 2)) AS 'Total', SUM(CASE WHEN datediff('2018-07-19', `T`.`Fecha`) <= 30) AS 'Total30', SUM(CASE WHEN datediff('2018-07-19', `T`.`Fecha`) > 30 AND datediff('2018-07-19', `T`.`Fecha`) <= 60) AS 'Total60', SUM(CASE WHEN datediff('2018-07-19', `T`.`Fecha`) > 60 AND datediff('2018-07-19', `T`.`Fecha`) <= 90) AS 'Total90', SUM(CASE WHEN datediff('2018-07-19', `T`.`Fecha`) > 90) AS 'Total90mas' COUNT(`T`.`Folio`) AS 'TotFolios', `T`.`ClienteFiscal`, CONCAT(IFNULL(`C`.`RazonSocial`, ''), IFNULL(CONCAT(`C`.`Nombre`, ' ', `C`.`APaterno`, ' ', `C`.`AMaterno`), '') ) AS `NombreCL` FROM `Talones` AS `T` JOIN `Clientes` AS `C` ON `T`.`ClienteFiscal` = `C`.`ClienteID` WHERE `T`.`Estado` != 0 GROUP BY `T`.`ClienteFiscal` ORDER BY `NombreCL` ASC
Pero obviamente me da errores:
Cita:
MySQL ha dicho: Documentación
#1064 - Algo está equivocado en su sintax cerca ') as 'Total30',
SUM(CASE WHEN datediff('2018-07-19', `T`.`Fecha`) > 30 AND date' en la linea 4
#1064 - Algo está equivocado en su sintax cerca ') as 'Total30',
SUM(CASE WHEN datediff('2018-07-19', `T`.`Fecha`) > 30 AND date' en la linea 4
Alguien podría ayudarme a conocer cómo puedo hacer mi consulta?