Respuesta: Jasper Report + iReport + NetBeans 4 Buenas ahora soy yo el que tengo un problema con los reports.
Intentaré poneros en situación. Tengo un informe maestro detalle. En el maestro la consulta la compongo por programación, ya que varía según una serie de parámetros.
Pues bien cuando ejecuto el informe, me da el error "error executing statement SQL..." en el report maestro. He repasado la consulta y no tiene ningun fallo de sintaxis, la he ejecutado y da los resultados esperados y lo más raro viene ahora. En otro servidor tomcat funciona perfectamente, es decir en mi local falla pero en el del compañero no.
Esto me hizo pensar que era por la base de datos(en mi servidor es MySQL 5.0 y en el del compañero 4.0), y aunque me extrañaba porque la consulta se ejecutaba perfectamente en MySQL-Front, probé el informe en otro servidor con MySQL 5.0 y efectivamente también funcionaba.
Por lo tanto creo que tengo el error arrinconado ya que creo que es de la instalación del servidor en mi ordenador, pero he repasado todo lo necesario para ejecutar jasper report desde mi aplicación y lo tengo todo. Los lib de la aplicación son los mismos en ambos ordenadores y los lib del servidor también.
No he encontrado nada relacionado y me esta superando porque no consigo hacerlo funcionar.
Pongo la consulta SQL, aunque creo que no es la razón de la patología, pero por si acaso alguien encuentra algún fallo en ella. Es un poco extensa.
SELECT F2.aseId aseId, F2.aseNombre, F2.aseLocalidadDoc, F2.Provincia, F2.aseTelefonoP,
SUM(F2.numEmp) numEmp, F2.aseComId1
FROM (
SELECT 1 valor, aseId, aseNombre, aseLocalidadDoc, aseProvinciaDoc, Provincia,
aseTelefonoP,
COUNT(DISTINCT empCIF) numEmp, aseComId1
FROM t_provincias, cursoalumno, cursos, empresas, asesorias
WHERE aseProvinciaDoc = CodProv
AND caluEmpCIF = empCIF
AND caluCurId = curId
AND caluAseId = aseId
AND caluAseId IS NOT NULL
AND curFecFin >= '2009-01-01'
AND curFecFin <= '2009-12-31'
GROUP BY caluaseId
UNION
SELECT 2 valor, aseId, aseNombre, aseLocalidadDoc, aseProvinciaDoc, Provincia,
aseTelefonoP,
COUNT(DISTINCT E.empCIF) numEmp, aseComId1
FROM t_provincias, asesorias, empresas E
WHERE aseProvinciaDoc = CodProv
AND E.empAseId = aseId
AND E.empCIF NOT IN (
SELECT DISTINCT caluEmpCIF
FROM cursos, cursoalumno
WHERE caluCurId = curId
AND curFecFin >= '2009-01-01'
AND curFecFin <= '2009-12-31'
AND caluEmpCIF = E.empcif )
GROUP BY aseId) F2
WHERE F2.aseNombre LIKE IFNULL(NULL,F2.aseNombre)
AND F2.aseId =IFNULL(NULL,F2.aseId)
AND F2.aseLocalidadDoc LIKE IFNULL(NULL, F2.aseLocalidadDoc)
AND F2.aseProvinciaDoc = IFNULL(NULL,F2.aseProvinciaDoc)
AND IFNULL(F2.aseComId1,'#') = IFNULL(NULL,IFNULL(F2.aseComId1,'#'))
GROUP BY aseId ORDER BY aseId
Espero que alguien arroje algo de luz.
Gracias por su atencion saludos. |