Subconsultas

Una subconsulta se puede utilizar en predicados cuantificados, en el predicado EXISTS o en el predicado IN. Una subconsulta solamente se puede especificar en un elemento individual en una cláusula SELECT.

Cuando una expresión path aparece en una subconsulta, la variable de identificación de la expresión path debe definirse en la subconsulta, en una de las subconsultas que contiene o en la consulta externa. Una subconsulta a escala es una subconsulta que devuelve un valor. Se puede utilizar una subconsulta a escala en un predicado básico y en la cláusula SELECT de una consulta dinámica.

Ejemplo: subconsultas

SELECT  OBJECT(e) FROM EmpBean e 
WHERE e.salary > ( SELECT  AVG(e1.salary) FROM  EmpBean e1)

La consulta anterior devuelve los empleados que ganan más del sueldo promedio de todos los empleados.

SELECT  OBJECT(e) FROM EmpBean e WHERE  e.salary > 
( SELECT AVG(e1.salary) FROM  IN  (e.dept.emps) e1  ) 

La consulta anterior devuelve los empleados que ganan más del sueldo promedio de su departamento.

SELECT  OBJECT(e) FROM EmpBean e WHERE e.salary = 
( SELECT MAX(e1.salary) FROM IN (e.dept.emps) e1  )

La consulta anterior devuelve los empleados que más ganan en su departamento.

	SELECT  OBJECT(e) FROM EmpBean e
WHERE e.salary > ( SELECT AVG(e.salary) FROM EmpBean e1 
WHERE YEAR(e1.hireDate) =  YEAR(e.hireDate)  )

La consulta anterior devuelve los empleados que ganan más que el promedio de empleados contratados el mismo año.


Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cque_subquery
File name: cque_subquery.html