Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/09/2015, 00:49
stevens82
 
Fecha de Ingreso: octubre-2011
Mensajes: 132
Antigüedad: 12 años, 6 meses
Puntos: 4
Respuesta: Insertar o Actualizar según fecha

Bueno ya logre hacer algo de lo que necesitaba digamos hacer un insert si es que no existe el mes en que se van agregando las compras y actualizar (No como lo necesito) si ya se hizo la compra en ese mes:

Código MySQL:
Ver original
  1. SELECT YEAR(fecha) anio, MONTH(fecha) mes
  2.     FROM comprames WHERE YEAR(fecha) = :aniox AND  MONTH(fecha) = :mesx GROUP BY anio, mes

Uso fetchcolumn() para decidir si inserta o si actualiza, el problema lo tengo en la actualización.

con este codigo logré que me sume lo que voy agregando por determinado mes:

Código MySQL:
Ver original
  1. UPDATE comprames SET total = :total + total, fecha = :fecha WHERE YEAR(fecha) = $fechaanio AND  MONTH(fecha) = $fechames

El problema es que si edito el valor de un registro al final del mes no sera correcto x lo que necesitaría solo actualizar los valores de todo ese mes, intente hacer esto:

Código MySQL:
Ver original
  1. UPDATE comprames T1 SET T1.total = (SELECT SUM(T2.importe) total
  2.         FROM compras T2 WHERE YEAR(T2.fecha) = $fechaanio AND MONTH(T2.fecha) = $fechames), fecha = :fecha
  3.         WHERE YEAR(T1.fecha) = $fechaanio AND MONTH(T1.fecha) = $fechames")

pero el problema radica en fecha = :fecha con esto no hace la actualización, pero si no lo pongo si me actualiza pero ocurre algo por ejemplo que si hoy 4 de septiembre agrego una compra del mes pasado "agosto" pues ese mes me lo pone a la fecha de hoy y es ahí donde malograría toda la data, no se si me deje entender :( alguien sabe de alguna solución o tal vez otra forma de hacer lo que necesito?.

Gracias de antemanos por sus respuesta.

Última edición por gnzsoloyo; 04/09/2015 a las 03:10