ULADECH – CATÓLICA PRACTICAS PROFESIONALES II CONSULTAS SIMPLES 1. Obtener una lista de todos los productos indicando para cada uno su idfab, idproducto, descripción, precio y precio con I.V.A. incluido (es el precio anterior aumentado en un 16%). SELECT idfab,idproducto,descripcion,precio, (precio * 1.16) AS iva_incluido FROM productos 2. De cada pedido queremos saber su número de pedido, fab, producto, cantidad, precio unitario e importe. SELECT numpedido, fab, producto, cant, importe / cant AS precio_unitario, importe FROM pedidos 3. Listar de cada empleado su nombre, nº de días que lleva trabajando en la empresa y su año de nacimiento (suponiendo que este año ya ha cumplido años). SELECT nombre, date() - contrato AS dias_trabajados, year(date()) - edad AS año_nacimiento FROM empleados 4. Obtener la lista de los clientes agrupados por código de representante asignado, visualizar todas la columnas de la tabla. SELECT * FROM clientes ORDER BY repclie 5. Obtener las oficinas ordenadas por orden alfabético de región y dentro de cada región por ciudad, si hay más de una oficina en la misma ciudad, aparecerá primero la que tenga el número de oficina mayor. SELECT * FROM oficinas ORDER BY region, ciudad, oficina DESC 6. Obtener los pedidos ordenados por fecha de pedido. SELECT * FROM pedidos ORDER BY fechapedido 7. Listar las cuatro líneas de pedido más caras (las de mayor importe). SELECT TOP 4 * FROM pedidos ORDER importe DESC ENCALADA SANDOVAL BRISA ULADECH – CATÓLICA PRACTICAS PROFESIONALES II 8. Obtener las mismas columnas que en el ejercicio 2 pero sacando unicamente las 5 líneas de pedido de menor precio unitario. SELECT TOP 5 numpedido, fab, producto, cant, importe / cant AS precio_unitario, importe FROM pedidos ORDER BY 5 9. Listar toda la información de los pedidos de marzo. SELECT * FROM pedidos WHERE MONTH(fechapedido) = 3 10. Listar los números de los empleados que tienen una oficina asignada. SELECT numemp FROM empleados WHERE oficina IS NOT NULL 11. Listar los números de las oficinas que no tienen director. SELECT oficina FROM oficinas WHERE dir IS NULL 12. Listar los datos de las oficinas de las regiones del norte y del este (tienen que aparecer primero las del norte y después las del este). SELECT * FROM oficinas WHERE region IN ('norte','este') ORDER BY region DESC 13. Listar los empleados de nombre Julia. SELECT * FROM empleados WHERE nombre LIKE 'Julia *' 14. Listar los productos cuyo idproducto acabe en x. SELECT * FROM productos WHERE idproducto LIKE '*x' ENCALADA SANDOVAL BRISA ULADECH – CATÓLICA PRACTICAS PROFESIONALES II CONSULTAS MULTITABLA 1. Listar las oficinas del este indicando para cada una de ellas su número, ciudad, números y nombres de sus empleados. Hacer una versión en la que aparecen sólo las que tienen empleados, y hacer otra en las que aparezcan las oficinas del este que no tienen empleados. Consulta_multitabla_1 SELECT oficinas.oficina, ciudad, numemp, nombre FROM oficinas INNER JOIN empleados ON oficinas.oficina = empleados.oficina WHERE region = 'este' Consulta_multitabla_2 SELECT oficinas.oficina, ciudad, numemp, nombre FROM oficinas LEFT JOIN empleados ON oficinas.oficina = empleados.oficina WHERE region = 'este' Consulta_multitabla_3 SELECT oficinas.oficina, ciudad, numemp, nombre FROM empleados RIGHT JOIN oficinas ON oficinas.oficina = empleados.oficina WHERE region = 'este' 2. Listar los pedidos mostrando su número, importe, nombre del cliente, y el límite de crédito del cliente correspondiente (todos los pedidos tienen cliente y representante). SELECT numpedido, importe, clientes.nombre AS cliente, limitecredito FROM pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie 3. Listar los datos de cada uno de los empleados, la ciudad y región en donde trabaja. SELECT empleados.*, ciudad, region FROM empleados LEFT JOIN oficinas ON empleados.oficina = oficinas.oficina 4. Listar las oficinas con objetivo superior a 600.000 pts indicando para cada una de Ellas el nombre de su director. SELECT oficinas.*, nombre AS director FROM empleados RIGHT JOIN oficinas ON empleados.oficina = oficinas.oficina WHERE objetivo > 600000 ENCALADA SANDOVAL BRISA ULADECH – CATÓLICA PRACTICAS PROFESIONALES II 5. 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, importe, empleados.nombre AS representante, clientes.nombre AS cliente FROM (pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie) INNER JOIN empleados ON pedidos.rep = empleados.numemp WHERE importe > 25000 6. Hallar los empleados que realizaron su primer pedido el mismo día en que fueron contratados. SELECT empleados.* FROM empleados INNER JOIN pedidos ON pedidos.rep = empleados.numemp WHERE fechapedido = contrato 7. Listar los empleados con una cuota superior a la de su jefe; para cada empleado sacar sus datos y el número, nombre y cuota de su jefe. SELECT empleados.*, jefes.numemp AS num_jefe, jefes.nombre AS nombre_jefe, jefes.cuota AS cuota_jefe FROM empleados INNER JOIN empleados jefes ON empleados.jefe = jefes.numemp WHERE empleados.cuota > jefes.cuota 8. Listar los códigos de los empleados que tienen una línea de pedido superior a 10.000 ptas o que tengan una cuota inferior a 10.000 pts. SELECT numemp FROM empleados LEFT JOIN pedidos ON pedidos.rep = empleados.numemp WHERE importe > 10000 OR cuota < 10000 ENCALADA SANDOVAL BRISA