Ver Mensaje Individual
  #11 (permalink)  
Antiguo 16/06/2008, 13:29
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 17 años
Puntos: 300
Respuesta: DESAFIO: Consulta imposible

Responderé yo, gnzsoloyo:

he probado la sintaxis que propones, haciendo algunos cambios en los nombres de los campos para acomodarlos a los usados por Arielcasanova. Esta es la sintaxis que utilicé:

SELECT
T1.id,
T1.nombre,
SUM(T1.horas * t.valor) TOTAL
FROM (SELECT
c.id as id, c.nombre as nombre, v.fecha as fecha, v.horas as horas
FROM consultores c INNER JOIN visitas v ON v.id_consultor= c.id) T1 INNER JOIN tarifas t ON t.id_consultor = T1.id WHERE T1.fecha BETWEEN t.fecha1 AND IF(t.fecha2 = '0000-00-00', NOW(),t.fecha2) GROUP BY t.id_consultor

Funciona, y funciona bien, y además lo hace más rápido que mi propuesta con varios inner join. Tenías razón.
Estoy también de acuerdo contigo sobre lo del solapamiento y respecto al uso de 0000-00-00 como por defecto, pues equivale a nulo. Tal vez otro valor por defecto que equivaliera a "hasta el día de hoy" causaría menos problemas.

Gracias.

Última edición por jurena; 17/06/2008 a las 02:40