Nota: Para realizar los ejercicios, utiliza la base de datos GestionSimples.
Combinar datos de dos tablas que tienen algún dato en común, con la finalidad de ampliar la información en una única tabla. Tendremos en cuenta los nulos, de forma que el LEFT o el RIGHT indicarán qué tabla es la que deberá aparecer, en caso de no tener correspondencia en la otra.
Listar todos los empleados y la ciudad y región donde trabaja.
SELECT numemp, nombre, edad, titulo, CONVERT(CHAR(8),contrato,3)AS contrato, jefe, empleados.oficina,ciudad, region FROM oficinas RIGHT JOIN empleados ON oficinas.oficina = empleados.oficina;
Resultado:
| Numemp | Nombre | Edad | Titulo | Contrato | Jefe | Oficina | Ciudad | Region |
|---|---|---|---|---|---|---|---|---|
| 101 | Antonio Viguer | 45 | representante | 20/10/86 | 104 | 12 | Alicante | este |
| 102 | Alvaro Jaumes | 48 | representante | 10/12/86 | 108 | 21 | Badajoz | oeste |
| 103 | Juan Rovira | 29 | representante | 01/03/87 | 104 | 12 | Alicante | este |
| 104 | José González | 33 | dir ventas | 19/05/87 | 106 | 12 | Alicante | este |
| 105 | Vicente Pantalla | 37 | representante | 12/02/88 | 104 | 13 | Castellon | este |
| 106 | Luis Antonio | 52 | director general | 14/06/88 | NULL | 11 | Valencia | este |
| 107 | Jorge Gutiérrez | 49 | representante | 14/11/88 | 108 | 22 | A Coruña | oeste |
| 108 | Ana Bustamante | 62 | dir ventas | 12/10/89 | 106 | 21 | Badajoz | oeste |
| 109 | María Sunta | 31 | representante | 12/10/99 | 106 | NULL | NULL | NULL |
| 110 | Juan Victor | 41 | representante | 13/01/90 | 104 | NULL | NULL | NULL |
| 111 | Juan Gris | 50 | representante | 01/05/05 | 110 | 21 | Badajoz | oeste |
| 112 | Julián Martorell | 50 | representante | 01/05/06 | NULL | NULL | NULL | NULL |
| 113 | Juan Gris | 18 | representante | 01/01/07 | NULL | NULL | NULL | NULL |
Listar todas las oficinas y los nombres y títulos de sus directores.
SELECT oficinas.*, nombre AS director, titulo FROM oficinas LEFT JOIN empleados ON dir = numemp;
Resultado:
| Oficina | Ciudad | Region | Dir | Objetivo | Ventas | Director | Titulo |
|---|---|---|---|---|---|---|---|
| 11 | Valencia | este | 106 | 57500,00 | 69300,00 | Luis Antonio | director general |
| 12 | Alicante | este | 104 | 80000,00 | 73500,00 | José González | dir ventas |
| 13 | Castellon | este | 105 | 35000,00 | 36800,00 | Vicente Pantalla | representante |
| 21 | Badajoz | oeste | 108 | 72500,00 | 84400,00 | Ana Bustamante | dir ventas |
| 22 | A Coruña | oeste | 108 | 30000,00 | 18600,00 | Ana Bustamante | dir ventas |
| 23 | Madrid | centro | 108 | NULL | NULL | Ana Bustamante | dir ventas |
| 24 | Aranjuez | centro | 108 | 25000,00 | 15000,00 | Ana Bustamante | dir ventas |
| 25 | Valencia | NULL | NULL | NULL | NULL | NULL | NULL |
| 26 | Pamplona | norte | NULL | NULL | 200000,00 | NULL | NULL |
| 27 | Móstoles | Centro | NULL | NULL | 0,00 | NULL | NULL |
| 28 | Valencia | este | NULL | 90000,00 | 0,00 | NULL | NULL |
| 29 | Valencia | este | NULL | 10000,00 | 2100,00 | NULL | NULL |
| 30 | pamplona | norte | NULL | 20000,00 | NULL | NULL | NULL |
| 31 | Elx | NULL | NULL | NULL | 0,00 | NULL | NULL |
Listar las oficinas con objetivo superior a 60.000 euros indicando para cada una el nombre de su director.
SELECT oficinas.*, nombre AS director FROM oficinas LEFT JOIN empleados ON dir = numemp WHERE objetivo > 60000;
Resultado:
| Oficina | Ciudad | Region | Dir | Objetivo | Ventas | Director |
|---|---|---|---|---|---|---|
| 12 | Alicante | este | 104 | 80000,00 | 73500,00 | José González |
| 21 | Badajoz | oeste | 108 | 72500,00 | 84400,00 | Ana Bustamante |
| 28 | Valencia | este | NULL | 90000,00 | 0,00 | NULL |
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.