Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/04/2014, 10:11
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Consulta, restar un mes, tomando en cuenta el año

Hola de nuevo lucas1234:

tienes razón en una consideración:

Cita:
Pero en el mes de enero, cuando haga un mes atrás me llava a diciembre, correcto, pero si le digo que sea del año actual... entonces no me va a devolver los datos del mes de diciembre del año pasado
Cómo podría solucionarse?
En este caso lo que tienes que hacer es agregar una condición "especial" para el mes de enero... es decir... es decir, algo así:

Para todos los meses excepto ENERO:

Código:
MONTH(CURDATE()) != 1 AND
   MONTH(mes) = MONTH(CURDATE()) - 1 AND 
   YEAR(mes) = YEAR(CURDATE())
Excusivamente para el mes de enero:

Código:
(MONTH(CURDATE()) = 1 AND
   MONTH(mes) = MONTH(CURDATE()) - 1 AND 
   YEAR(mes) = YEAR(CURDATE()) - 1)
De tal suerte que la consulta debería quedar más o menos así:

Código MySQL:
Ver original
  1. FROM tablita
  2.    ((MONTH(CURDATE()) != 1 AND
  3.    MONTH(mes) = MONTH(CURDATE()) - 1 AND
  4.    YEAR(mes) = YEAR(CURDATE())) OR
  5.    (MONTH(CURDATE()) = 1 AND
  6.    MONTH(mes) = MONTH(CURDATE()) - 1 AND
  7.    YEAR(mes) = YEAR(CURDATE()) - 1)) AND
  8.    kwh IS NULL;

Ojo con los paréntesis... dado que combinas AND's y OR's, debes tener cuidado de agrupar correctamente.

Dale un vistazo y nos comentas.

Saludos
Leo.