El gato negro
OBJETIVOS
•
Ser capaces de realizar una consulta dentro de otra
1.- SUBCONSULTAS
A veces interesa obtener dentro de una selección de datos, otra, esto se conocecomo subconsulta. La subconsulta se hace a través de la cláusula HAVING, la cual trabaja de forma muy parecida a la cláusula WHERE, y se utiliza para considerar sólo aquellos grupos que satisfagan lacualificación dada en la misma. Las expresiones permitidas en la cláusula HAVING deben involucrar funciones agregadas. Cada expresión que utilice sólo atributos planos deberá recogerse en lacláusula WHERE. Por otro lado, toda expresión que involucre funciones agregadas debe aparecer en la cláusula HAVING.
Si queremos solamente los clientes que han realizado más de un pedido se utilizará laconsulta:
SELECT CLIENTE.APELLIDOS, COUNT(PEDIDO.IMPORTE) TOTAL_PEDIDOS FROM CLIENTE LEFT OUTER JOIN PEDIDO ON (CLIENTE.DNI = PEDIDO.DNI) GROUP BY CLIENTE.APELLIDOS HAVING ( (COUNT(*) > 1) ) ORDERBY CLIENTE.APELLIDOS; APELLIDOS -------------------PEREZ GARCIA SEBASTIAN YUSTE TOTAL_PEDIDOS --------------3 2
Otra forma de realizar consultas dentro de consultas es por medio de un SELECTdentro de otro. En las cláusulas WHERE y HAVING se permite el uso de subconsultas (subselects) en cualquier lugar donde se espere un valor. En este caso, el valor debe derivar de la evaluación previa dela subconsulta. El uso de subconsultas amplía el poder expresivo de SQL.
Si queremos conocer los clientes que tienen más edad que MARIA SEBASTIAN YUSTE (55 años) utilizaremos la consulta:SELECT * FROM CLIENTE WHERE EDAD > (SELECT EDAD FROM CLIENTE WHERE APELLIDOS='SEBASTIAN YUSTE'); DNI ---------87882215 57374811 42611580 APELLIDOS -------------------JIMENO DIAZ JIMENO ZOLA ROMERO ALONSONOMBRE -------MIGUEL DANIELA LUIS EDAD -----61 61 68
Cuando revisamos la consulta anterior, podemos ver la palabra clave SELECT dos veces. La primera al principio de la consulta - a la que nos...
Regístrate para leer el documento completo.