Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/12/2011, 05:38
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con subconsulta aparentemente sencilla

¿Probaste algo así?:

Código MySQL:
Ver original
  1.     *,
  2.     TIMESTAMPDIFF(DAY, S.fechahora, CURDATE())  dif,
  3.     TIMESTAMPDIFF(DAY, E.datarecepcio, CURDATE()) dif2
  4.     expedients E
  5.     INNER JOIN
  6.         (SELECT codstatus, codexpedient, status, titoltextepredefinit, MAX(fechahora) datarecepcio,  
  7.         FROM status
  8.         WHERE status = 'parametro'
  9.         GROUP BY codexpedient) S ON E.codexpedient = S.codexpedient
  10. GROUP BY E.codexpedient

Cambié la formula que usas para hacer el cálculo,porque ya existe un a función más eficiente para eso (TIMESTAMPDIFF()).
Un tip que te agregaría es que no es buena práctica usar el asterisco para las consultas, a menos que efectivamente estés por usar luego todos los datos de todas las columnas de las tablas leídas... que no es aparentemente el caso.
Traer todo recarga inútilmente el proceso, las comunicaciones y requiere más memoria del buffer de datos. A menos que sea absolutamente necesario, indica específicamente qué campos vas a usar y el resto no los pongas.
Es preferible perder tiempo tipeando nombres, y no perder perfomance.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 19/12/2011 a las 05:43