Está usted en Indice > Construcción > Lenguajes > SQL > Lecciones y Paso a Paso > Subconsultas en SQL
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Subconsultas en SQL (2)

Se puede utilizar también alias del nombre de la tabla en una subconsulta para referirse a tablas listadas en la cláusula FROM fuera de la subconsulta. El ejemplo siguiente devuelve los nombres de los empleados cuyo salario es igual o mayor que el salario medio de todos los empleados con el mismo título. A la tabla Empleados se le ha dado el alias T1::

    SELECT Apellido, Nombre, Titulo, Salario FROM Empleados AS T1
    WHERE Salario >= (SELECT Avg(Salario) FROM Empleados
    WHERE T1.Titulo = Empleados.Titulo) ORDER BY Titulo;

En el ejemplo anterior , la palabra reservada AS es opcional.

    SELECT Apellidos, Nombre, Cargo, Salario FROM Empleados
    WHERE Cargo LIKE "Agente Ven*" AND Salario > ALL (SELECT Salario FROM
    Empleados WHERE (Cargo LIKE "*Jefe*") OR (Cargo LIKE "*Director*"));

    Obtiene una lista con el nombre, cargo y salario de todos los agentes de ventas cuyo salario es mayor que el de todos los jefes y directores.

    SELECT DISTINCTROW NombreProducto, Precio_Unidad FROM Productos
    WHERE (Precio_Unidad = (SELECT Precio_Unidad FROM Productos WHERE
    Nombre_Producto = "Almíbar anisado");

    Obtiene una lista con el nombre y el precio unitario de todos los productos con el mismo precio que el almíbar anisado.

    SELECT DISTINCTROW Nombre_Contacto, Nombre_Compañia, Cargo_Contacto,
    Telefono FROM Clientes WHERE (ID_Cliente IN (SELECT DISTINCTROW
    ID_Cliente FROM Pedidos WHERE Fecha_Pedido >= #04/1/93# <#07/1/93#);

    Obtiene una lista de las compañías y los contactos de todos los clientes que han realizado un pedido en el segundo trimestre de 1993.

    SELECT Nombre, Apellidos FROM Empleados AS E WHERE EXISTS
    (SELECT * FROM Pedidos AS O WHERE O.ID_Empleado = E.ID_Empleado);

    Selecciona el nombre de todos los empleados que han reservado al menos un pedido.

    SELECT DISTINCTROW Pedidos.Id_Producto, Pedidos.Cantidad,
    (SELECT DISTINCTROW Productos.Nombre FROM Productos WHERE
    Productos.Id_Producto = Pedidos.Id_Producto) AS ElProducto FROM
    Pedidos WHERE Pedidos.Cantidad > 150 ORDER BY Pedidos.Id_Producto;

    Recupera el Código del Producto y la Cantidad pedida de la tabla pedidos, extrayendo el nombre del producto de la tabla de productos.

 




Autor: ASP Tutor
http://www.asptutor.com/sql/sql7.asp#7

Usuarios que han visto este tema también han visto...

- Supresión y modificación de tablas con SQL
- Recuperar una base de datos
- Criterios de selección SQL
- La Cláusula Procedure en SQL
- Referencias cruzadas en SQL


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 22-11-2008 a las 16:14:12