Hola de nuevo arielenter:
No me quedó claro si ya resolviste la consulta o sigues con problemas.
La consulta que te propone el compañero gnzsoloyo es de hecho prácticamente la misma que te propuse yo:
Mi propuesta:
Código:
SELECT DISTINCT
SUM(IF(fentrada BETWEEN '2001-01-01' AND '2011-08-04'
AND estado='PAGADO' OR estado='OCUPADO', total, 0))
+
SUM(IF(fentrada BETWEEN '2011-01-08' AND '2011-05-08'
AND estado='OCUPADO', entrega, 0))
+
SUM(IF(fentrada BETWEEN '2011-01-08' AND '2011-05-08'
AND estado='DEBE', entrega, 0)) xTotal
FROM
alquiler
La propuesta de gnzsoloyo:
Código:
SELECT
(SUM(IF(estado='PAGADO' OR estado='OCUPADO', total, 0)) +
SUM(IF(estado='OCUPADO', entrega, 0)) +
SUM(IF(estado='DEBE', entrega, 0))) xTotal
FROM alquiler
WHERE
fentrada BETWEEN '2001-01-01' AND '2011-08-04';
En mi caso no puse la condición de la fecha en el where externo porque en tu consulta de ejemplo estabas manejando dos rangos de fechas, no uno solo:
Código:
fentrada BETWEEN '2001-01-01' AND '2011-08-04' (para el primer sum)
y
fentrada BETWEEN '2011-01-08' AND '2011-05-08' (para los dos sum restantes)
Tal y como lo pone gnzsoloyo el rango de fechas se aplicaría igual para los tres casos, no estoy seguro si esto es correcto. De cualquier manera si resolviste consulta me alegro mucho.
Saludos
Leo.