Foros del Web » Programación para mayores de 30 ;) » Java »

Problema Consulta JPQL

Estas en el tema de Problema Consulta JPQL en el foro de Java en Foros del Web. Hola, tengo un problema con una consulta en JPQL, Lo que quiero es sumar dos valores obtenidos en una clausula SELECT Código: SELECT horascorte + ...
  #1 (permalink)  
Antiguo 19/07/2013, 09:14
 
Fecha de Ingreso: julio-2013
Ubicación: Bogota
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Problema Consulta JPQL

Hola, tengo un problema con una consulta en JPQL,

Lo que quiero es sumar dos valores obtenidos en una clausula SELECT

Código:
 SELECT 
            horascorte + horasausentismo 
            FROM 
            (SELECT
            SUM( CASE WHEN c.idhourstype= :idhourstype THEN SUM(c.quantity) ELSE 0 END) AS horascorte,
            SUM( CASE WHEN (c.idevent= :idevent AND c.idhourstype= :idhourstype) 
            THEN SUM(-c.quantity) ELSE 0 END) AS horasausentismo
            FROM Courtdetails c  
            GROUP BY c.idevent, c.idhourstype)
el error que me arroja es el siguiente:

Código:
org.eclipse.persistence.internal.jpa.parsing.jpql.InvalidIdentifierException
Espero me puedan ayudar... saludos.!
  #2 (permalink)  
Antiguo 20/07/2013, 12:31
 
Fecha de Ingreso: marzo-2012
Ubicación: Argentina
Mensajes: 111
Antigüedad: 12 años, 8 meses
Puntos: 12
Respuesta: Problema Consulta JPQL

Hola,

Nunca use jpql pero por lo que entiendo es basicamente hql , por la exception es un identificador invalido, por curiosidad sabes si el + en la consulta esta correcto.

En todo caso podras poner mas detalle de lo que estas intentando?

Saludos
  #3 (permalink)  
Antiguo 22/07/2013, 10:34
 
Fecha de Ingreso: julio-2013
Ubicación: Bogota
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problema Consulta JPQL

Hola, gracias por responder...

Tengo 2 "SUM" que me calculan (mas específicamente suman) unos valores de una BD:

Código:
SUM( CASE WHEN c.idhourstype= :idhourstype THEN SUM(c.quantity) ELSE 0 END) AS horascorte
y
Código:
SUM( CASE WHEN (c.idevent= :idevent AND c.idhourstype= :idhourstype) 
            THEN SUM(-c.quantity) ELSE 0 END) AS horasausentismo
El resultado de ambos "SUM" son asignados a un alias "AS horascorte" y "AS horasausentismo",
esos valores son los que quiero sumar. El "+" en la consulta no me genera problema porque es un operador aritmético que se puede usar en JPQL según la documentación.

El problema creo que esta en que no encuentra estos alias "AS" o no se si lo que sucede, es que no permite tener una clausula "SELECT" dentro de una clausula "FROM", en SQL nativo si lo permite pero no se si en JPQL sea posible.

Espero poder encontrar solución al tema...

Saludos

Etiquetas: Ninguno
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 13:57.