Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/02/2014, 06:42
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Operaciónes con datos distinta fecha

Los campos calculados son mala cosa en una buena base de datos relacional.....

Lo que pides se puede calcular con una query y lo mejor es no guardar el resultado en ninguna parte de la bbdd...

Código MySQL:
Ver original
  1. SELECT Min(fecha) Ayer,
  2.              MAX(if(fecha=DATE_SUB(DATE(NOW()) INTERVAL 1 DAY) ,contador,0) ContadorAyer,
  3.              MAX(fecha) Hoy,
  4.              MAX(if(fecha=DATE(NOW()),contador,0)) ContadorHoy,
  5.              MAX(if(fecha=DATE(NOW()),contador,0))-MAX(if(fecha=DATE_SUB(DATE(NOW()) INTERVAL 1 DAY) ,contador,0) Diferencia
  6. FROM tuTabla
  7. WHERE fecha>=DATE_SUB(DATE(NOW()) INTERVAL 1 DAY) and fecha<=DATE(NOW());

Si guardas el resultado y posteriormente hay un cambio en los registros de tuTabla y no haces la actualización del campo calculado vas a tener la bbdd en un estado incoherente. Por muy bien que programes siempre puede haber un error de ejecución por el que no se realice la operación de actualización del campo calculado....

Ya que siempre lo puedes calcular para que guardarlo!
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 17/02/2014 a las 06:55