UNIVERSIDAD PRIVADA DOMINGO SAVIO
ACTIVIDAD #3
CONSULTAS SQL SERVER MULTITABLAS
ALUMNO:
MARIO A. SAAVEDRA MÉRIDA
DOCENTE: Ing. WILMER CAMPOS
Santa Cruz - Bolivia
UNIVERSIDAD PRIVADA DOMINGO SAVIO
ACTIVIDAD #3
CONSULTAS SQL SERVER MULTITABLAS
ALUMNO:
MARIO A. SAAVEDRA MÉRIDA
DOCENTE: Ing. WILMER CAMPOS
Santa Cruz - Bolivia
Actividad #2 Administración de Base de Datos
ACTIVIDAD 3: SQL 1 - Las consultas multitabla
Ejercicios del tema:
/*1.Listar los empleados (numemp, nombre, oficina) y con cada uno de ellos la
ciudad y región de cada una de las oficinas donde trabajan.*/
SELECT numemp, nombre,empleados.oficina, ciudad, region
FROM empleados INNER JOIN oficinas
ON oficinas.oficina = empleados.oficina
/*2.Listar los empleados tal cual como se pide en la pregunta anterior, pero
mostrando inclusive los empleados que no tienen oficina asignada, mostrando datos
Nulos donde fuera necesario.*/
SELECT numemp, nombre,empleados.oficina, ciudad, region
FROM empleados LEFT JOIN oficinas
ON oficinas.oficina = empleados.oficina
/*3.Desplegar una lista, ordenada por ciudad, de las oficinas (código oficina,
ciudad, región), así como el código del director y su nombre.*/
SELECT oficinas.oficina, ciudad, region, numemp,nombre
FROM oficinas INNER JOIN empleados
ON oficinas.dir = empleados.numemp
ORDER BY oficinas.ciudad ASC
SELECT oficinas.oficina, ciudad, region, numemp,nombre
FROM oficinas LEFT JOIN empleados
ON oficinas.dir = empleados.numemp
ORDER BY oficinas.ciudad ASC
/*4.Listar las oficinas del “este” indicando para cada una de ellas su número,
ciudad, números y nombres de sus empleados. Deben aparecer sólo las que tienen
empleados.*/
SELECT oficinas.oficina, ciudad, region, numemp, nombre
FROM oficinas INNER JOIN empleados ON oficinas.oficina = empleados.oficina
WHERE oficinas.region = 'este';
/*5.Realizar una consulta para listar de forma similar a la anterior pregunta,
las oficinas del “este” que no tienen empleados. Donde corresponda puede mostrar
valores nulos.*/
SELECT oficinas.oficina, ciudad, region, numemp, nombre
FROM oficinas LEFT JOIN empleados ON oficinas.oficina = empleados.oficina
WHERE oficinas.region = 'este';
/*6.Desplegar los pedidos mostrando su número, importe, nombre del cliente y el
límite de crédito del cliente. Ordenar por el importe de pedido, del menor al
mayor monto.*/
SELECT numpedido, importe, nombre AS cliente, limitecredito
FROM pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie
ORDER BY importe;
MARIO A. SAAVEDRA MERIDA pág. 1
Actividad #2 Administración de Base de Datos
/*7.Listar los pedidos mostrando su número, importe, nombre del cliente y el
límite de crédito del cliente, ordenado del mayor al menor monto límite de
crédito.*/
SELECT numpedido, importe, nombre AS cliente, limitecredito
FROM pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie
ORDER BY limitecredito DESC
/*8.Listar las oficinas con objetivo superior a 600.000 pts indicando para cada
una de ellas el importe de “ventas” realizadas durante el presente año. Ordenar
por el Objetivo de mayor al menor monto.*/
SELECT oficinas.*, pedidos.importe
FROM oficinas LEFT JOIN (empleados INNER JOIN pedidos ON empleados.numemp =
pedidos.rep) ON oficinas.oficina = empleados.oficina
WHERE oficinas.objetivo > 600.000 ORDER BY oficinas.objetivo DESC;
/*9.Listar los pedidos superiores a 25.000 pts, incluyendo el nombre del empleado
que tomó el pedido y el nombre del cliente que lo solicitó.*/
SELECT numpedido, empleados.nombre, clientes.nombre
FROM (empleados INNER JOIN clientes ON empleados.numemp = clientes.repclie)
INNER JOIN pedidos ON empleados.numemp = pedidos.rep
WHERE pedidos.importe > 25.000;
/*10.Mostrar los empleados que realizaron su primer pedido el mismo día en que
fueron contratados.*/
SELECT empleados.*, pedidos.fechapedido
FROM empleados INNER JOIN pedidos ON empleados.contrato = pedidos.fechapedido;
/*11.Listar los empleados con una cuota superior a la de su jefe; para cada
empleado sacar sus datos y el número, nombre de su jefe.*/
SELECT empleados.numemp, empleados.nombre, empleados.cuota, EP1.nombre AS
Nombre_Jefe
FROM empleados INNER JOIN empleados AS EP1 ON empleados.jefe=EP1.numemp
WHERE empleados.cuota>EP1.cuota
MARIO A. SAAVEDRA MERIDA pág. 2