Está en la página 1de 4

Laboratorio de Base de Datos

Base de Datos
Guía de Laboratorio No 9
Consultas Multitablas y Sub Consultas
Daniel Barton 1IL-132
Objetivo:
Realizar consultas que involucren varias tablas o que requieran consultas a las
mismas tablas para poder tener los criterios de filtro de la consulta.

1. Se desea conocer los nombres y el precio de los Libros (Titles) cuyo precio
está por arriba de la media.
2. Muestre el nombre del autor y la cantidad de libros que dicho autor ha
escrito en la rama de la "psycology

3. Listar el número de orden y el id del cliente que ha pedido cantidades


superiores a 20 unidades del producto con Productid =14

4. Muestre la categoría del producto


(Seafood,Meat/Poultry,Condiments....) y el monto total
vendido de esta categoría.
Considere que el detalle de las ventas se encuentra en
la tabla Order Details.
(Esta es parte de la salida que debe ud obtener)

5. Modifique el problema anterior, de tal forma que ahora se


muestren los montos totales pero agrupados por año y
por categoría. (La fecha de la orden se encuentra en la
tabla Orders).
(Esta es parte de la salida que debe ud obtener)

6. Para poder visualizar si su próxima consulta fue bien realizada, inserte su


nombre y apellido como un nuevo empleado de la tabla employees (BD
Northwind, sustituyendo en el insert mostrado su nombre y apellido en lugar
del de la profesora. El employeeid se genera automáticamente, por lo que
no debe ser captado.

insert into Employees (LastName,FirstName)


values ('Johnson', 'Jeannette')
Ahora realice la consulta que permita conocer que empleados tiene órdenes
de pedidos. Debe mostrarse el nombre completo del empleado, el código de
pedido y la fecha en que el mismo realizó el pedido.

Prof. Jeannette de Herrera


Laboratorio de Base de Datos

En el caso de que existan empleados que no han realizado pedidos deberá


mostrarse su apellido y las columnas
siguientes (cod pedido y la fecha) con
valores NULL. Muestre los datos
ordenados por el número de orden.
Como usted es un nuevo empleado, debe
aparecer su nombre y no deben verse
pedidos ni fecha en su nombre. Muy
similar a:

7. Crear una consulta que muestre el nombre de los empleados que tienen a
su cargo personal (es decir que son jefes) y la cantidad de empleados que
cada uno de estos tiene a su cargo.
La tabla Employees tiene una relación recursiva. Aún cuando los datos
están almacenados en una misma tabla
(employees), para la consulta recuerde
que para un caso la tabla Employees
representa al jefe y para el otro la tabla
Employees representa al subalterno.

8. Modifique el problema 3, de tal forma que se liste el número de la orden y el


nombre del cliente (companyname) que tiene pedidos del producto llamado
'Queso Cabrales' con cantidades superiores a 40 unidades. (la consulta
debe hacerse con el nombre del producto)

RESULTADOS
1 SELECT title, price
FROM titles
WHERE price > (SELECT
AVG(price) FROM titles)

2 SELECT p.au_id as 'ID de


Autor', t.title as 'Libros',
t.type as 'Tipo'
From [titleauthor] as p
INNER JOIN [titles] as t
ON p.title_id=t.title_id
WHERE type = 'psychology'

Prof. Jeannette de Herrera


Laboratorio de Base de Datos

3 Select p.OrderID as
'Orden', p.ProductID as
'Producto', t.CustomerID as
'Cliente'
From [Order Details] as p
INNER JOIN [Orders] as t
ON p.orderID=t.orderid
WHERE ProductID = '14'

4 Select p.categoryname as
'Categorías',
(t.UnitPrice*t.Quantity) as
'Monto'
From [Categories] as p INNER
JOIN [Order Details] as t

ON p.CategoryID=t.OrderID

5
6
7 Select j.LastName as
'Jefe', count(e.ReportsTo)
as 'Cantidad de SubAlternos'
From Employees e JOIN
Employees j
On e.ReportsTo =
j.EmployeeID
Group By j.LastName,
e.ReportsTo
Order By j.LastName
8 Select b.OrderID as
'Número de orden',
a.ProductName as 'Nombre del
cliente'
From Products a INNER JOIN
[Order Details] b
On a.ProductID = b.ProductID
INNER JOIN Suppliers c
On c.SupplierID =
a.SupplierID
Where ProductName='Queso
Cabrales' and Quantity>40

Prof. Jeannette de Herrera


Laboratorio de Base de Datos

Prof. Jeannette de Herrera

También podría gustarte