
16/06/2008, 13:29
|
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 |