Feeds de los foros

En la página principal de los foros encontrarás los enlaces al logo feed feed general y al de cada uno de los foros.

Subscribete para mantenerte informado de los cambios y responde a las dudas siempre que te sea posible

Buscar en el foro

Foro Persistencia

feed Foro Persistencia Foro: Persistencia

Nuevo Tema Nuevo Tema

Equivalencia de la siguiente SQL 07/11/2008 13:57
coutemeier

No encuentro cómo expresar mediante HQL la siguiente SQL de Oracle:

SELECT gl.labelOrde, gl.labelId, NVL(barPuntos, 0) barPuntos
FROM grupos_labels gl,
     (SELECT * FROM cur_baremar_items WHERE cursoId = 2) c
WHERE
    c.labelId(+) = gl.labelId

 

Tengo tres entidades creadas: Labels, GruposLabels y PE (puntuación etiqueta).

Labels: Contiene una lista de etiquetas.

Campos más representativos

  • id (Clave primaria)
  • labeldescri (descripción de la etiquta).

GruposLabel: Agrupa las etiquetas por grupos

Campos más representativos: 

  • id (Clave primaria)
  • labelOrde Orden de aparición de la etiqueta en el grupo
  • grupoId (Código de agrupación)
  • labelId (clave foránea que apunta hacia labels).

PE contiene la puntuación por los distintos GruposLabel de un curso

Campos más representativos:

  • labelId: clave foránea que apunta hacia GrupoLabel
  • cursoId: Código de curso

Lo que quiero es que consulte el curso que consulte de PE, me salga siempre una respuesta. Si no tiene datos cargados debería salirme con valores por defecto obtenidos por cruzar las tres tablas.

En Oracle, lo expreso así:

SELECT gl.labelOrde, gl.labelId, NVL(barPuntos, 0) barPuntos
FROM grupos_labels gl,
     (SELECT * FROM cur_baremar_items WHERE cursoId = 2) c
WHERE
    c.labelId(+) = gl.labelId

Si un curso tiene datos, me devuelve la puntuación según el modelo:

(labelOrde, labelId,barPuntos)

(1, 1, 10) - (2, 3, 15) - (3, 2, 5)

Y si no tiene datos debería devolverme:

(1, 1, 0) - (2, 3, 0) - (3, 2, 0)

 

¿Cómo lo puedo expresar en HQL?

#unapprove_message#
RE: Equivalencia de la siguiente SQL 07/11/2008 13:58
coutemeier Lo olvidaba: PE está asimilado a cur_baremar_items
#unapprove_message#
#thread_expired#.
Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano