Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

No me funciona esta consulta. Problema con versión de BD??

Estas en el tema de No me funciona esta consulta. Problema con versión de BD?? en el foro de Mysql en Foros del Web. Hola: Hace unos dias Jurena me ayudo con esta consulta. Estoy desarrollando una aplicación que trabaja con una BD MySql. La aplicación ya est lista ...
  #1 (permalink)  
Antiguo 12/09/2008, 19:39
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años
Puntos: 2
No me funciona esta consulta. Problema con versión de BD??

Hola:
Hace unos dias Jurena me ayudo con esta consulta. Estoy desarrollando una aplicación que trabaja con una BD MySql. La aplicación ya est lista (o casi) y hoy la he querido probar ya en el servidor donde trabajará y.... no funcionan algunas consultas. Definitivamente esta consulta en mi BD de desarrollo funciona sin problemas, pero en la producción me reclama por el select anidado.

Código:
SELECT a.Nombre_agente as AGENTES, a.Empleador_agente AS EMPRESA, 
                  sum(if(t1.eval='',a.nombre_agente ,t1.eval)) Evaluaciones,a.Estado , a.tipo_turno 
                  FROM callcapture.agentes a 
                  LEFT JOIN(SELECT a.Nombre_agente na, COUNT( a.Nombre_agente ) eval 
                  FROM callcapture.agentes a 
                  INNER JOIN callcapture.evaluaciones e ON a.Nombre_agente = e.agente_evaluado 
                  WHERE e.fecha_evaluacion BETWEEN '2008-09-01' AND '2008-09-30'
                                    GROUP BY a.Nombre_agente )T1 ON a.Nombre_agente = T1.na 
                  WHERE a.empleador_agente like '%' 
                  and a.estado like '%' 
                  and a.tipo_turno like '%' and a.cargo <> 'Lider grupo' and a.cargo <> 'supervisor' 
                  GROUP BY a.Nombre_agente
                  ORDER BY a.Nombre_agente ;
La BD de prueba es una MySql 5.0.67, y la BD de producción es un MySql 4.0.13.
Bueno ya intenté subir de versión pero está algo complicado de momento, ya que hay varias aplicaciones corriendo sobre la BD 4.0, y hay que hacerle algunos ajustes para que funcionen con la 5.0 .

Bueno toda esta lata o historia es para saber si hay alguna idea de como salvar esta consulta para que funcione en la MySql 4.0.13

desde ya gracias
  #2 (permalink)  
Antiguo 14/09/2008, 02:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: No me funciona esta consulta. Problema con versión de BD??

Y si el paso fuera a MySQL 4.1, pues creo que a partir de ahí las subconsultas funcionarían...
En todo caso refréscanos la memoria y dinos cuál es el objetivo de la consulta, para pensar otra que funcione sin subconsultas..., que creo que es el problema.
  #3 (permalink)  
Antiguo 15/09/2008, 06:13
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años
Puntos: 2
Respuesta: No me funciona esta consulta. Problema con versión de BD??

Muchas gracias por la preocupación Jurena:

Este es el tema desde el que salio esta consulta.
http://www.forosdelweb.com/f86/selec...ara-mi-619537/

Una vez más gracias

Marcelo
  #4 (permalink)  
Antiguo 15/09/2008, 12:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: No me funciona esta consulta. Problema con versión de BD??

Marcelo,

no estoy seguro, pero prueba esta consulta. No hay subconsulta, sino que tras un LEFT JOIN, al hacer el cómputo, resto uno cuando el valor es NULL en fecha. Sale 0 y muestra todos.

SELECT a.Nombre_agente na, if( count( a.Nombre_agente ) =1
AND e.fecha_evaluacion IS NULL , count( a.Nombre_agente ) -1, count( a.Nombre_agente ) ) AS eval
FROM agentes a
LEFT JOIN evaluaciones e ON a.Nombre_agente = e.agente_evaluado
WHERE e.fecha_evaluacion
BETWEEN '2007-01-01'
AND '2008-12-12'
OR e.fecha_evaluacion IS NULL
GROUP BY a.Nombre_agente


Luego habría que ir añadiendo datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:32.