Citation preview

UNIVERSIDAD DE MANIZALES

DIPLOMADO DE DESARROLLO DE SOFTWARE MATERIA: BASES DE DATOS PRESENTADO POR: ALEXANDRA SANTA MUÑOZ

PROFESOR: LUIS BERTEL

MANIZALES, ABRIL DE 2014 TALLER DE CONSULTAS Resuelva las siguientes preguntas con álgebra relacional y su respectiva consulta en SQL. El estudiante debe dar evidencia de los resultados de las consultas. 1. Liste las oficinas de ventas mostrando la ciudad en donde cada una está localizada y sus ventas anuales hasta la fecha. SELECT ciudad, ventas, FROM oficinas 2. Liste los nombres y las ventas anuales hasta la fecha para cada vendedor de la base de datos. También muestre la cuota (objetivo de venta) y el número de oficina en donde cada persona trabaja. Select repventas.nombre, repventas.ventas * 12 AS ventas_anuales, repventas.cuota, oficinas.objetivo, oficinas.oficina from repventas, oficinas 3. Calcule el valor en la cual cada vendedor está por encima o por debajo de su cuota. 4. Indique los vendedores cuyas ventas son inferiores a sus cuotas. Select num_empl, nombre, ventas, cuota from repventas where ventasobjetivo; 14. ¿Cuáles son los objetivos y ventas promedio para las oficinas de la región ESTE? Select región, objetivo, avg(ventas) From oficinas Where región='ESTE' Group by oficinas. región, oficinas.objetivo;

15. Liste los nombres, oficinas y fechas de contrato de todos los vendedores. select nombre, oficina_rep, contrato from repventas 16. ¿Cuál es el nombre, cuota y ventas del empleado número 107? SELECT nombre, cuota, ventas FROM repventas WHERE num_empl = 107 17. ¿Cuáles son las ventas promedio de nuestros vendedores? SELECT avg (ventas) From repventas 18. Liste el nombre y la fecha de contrato de cualquier vendedor cuyas ventas sean superiores a $500.000. Select nombre, contrato, ventas From repventas Where ventas > 500000; 19. Lista de los vendedores, sus cuotas y sus directores. SELECT nombre, cuota, director FROM repventas 20. Lista de la ciudad, región y ventas de cada oficina. SELECT ciudad, región, ventas From oficinas 21. Liste la ciudad, la región y el importe por encima o por debajo del objetivo para cada oficina. Select oficina, ciudad, región, objetivo From oficinas Where ventasobjetivo; 22. Muestre el valor del inventario para cada producto. SELECT id_producto, (existencias * precio) FROM productos;

23. Muestre qué sucederá si se eleva la cuota de cada vendedor un 3% de sus ventas anuales hasta la fecha correspondiente. 24. Liste el nombre, el mes y el año de contrato para cada vendedor. SELECT nombre, extract(month from contrato), extract(year from contrato) FROM repventas 25. Liste las ventas para cada ciudad. SELECT ventas, ciudad FROM oficinas 26. Muestre todos los datos de la tabla oficinas. SELECT * from oficinas 27. Liste los números de empleados de todos los directores de las oficinas de ventas. SELECT num_empl, director,oficina_rep from repventas 28. Liste los números de empleado de todos los directores de oficina de ventas. SELECT num_empl, director,oficina_rep from repventas

29. Muestre las oficinas en donde las ventas exceden al objetivo. SELECT oficina from oficinas where ventas> objetivo; 30. Muestre el nombre, las ventas y la cuota del empleado número 105. SELECT nombre, ventas, cuota FROM repventas WHERE num_empl = 105 31. Muestre los empleados dirigidos por Bob Smith (empleado 104). SELECT num_empl, nombre FROM repventas

WHERE director = 104; 32. Halle los vendedores contratados antes de 1988. SELECT * FROM repventas WHERE extract(year from contrato)cuota; 37. Liste los vendedores que están por debajo o en su cuota. select num_empl, nombre, ventas, cuota from repventas where(ventas250000); 64. Lista los pedidos superiores a $25.000, mostrando el nombre del cliente que remitió el pedido y el nombre del vendedor asignado a ese cliente. Select repventas.nombre, clientes.empresa, pedidos.num_pedido, pedidos.importe From repventas Inner join pedidos On (repventas.num_empl=pedidos.rep) Inner join clientes On (clientes.num_clie=pedidos.clie) Where (pedidos.importe>25000);

65. Liste los pedidos superiores a $25.000, mostrando el nombre del cliente que lo ordenó, el vendedor asociado al cliente y la oficina en donde el vendedor trabaja. Select clientes.empresa, repventas.nombre, repventas.oficina_rep, pedidos.num_pedido, pedidos.importe From repventas Inner join pedidos On (repventas.num_empl=pedidos.rep) Inner join clientes On (clientes.num_clie=pedidos.clie) Where (pedidos.importe>25000);

66. Halle todos los pedidos recibidos en los días en que un nuevo vendedor fue contratado. 67. Liste todas las combinaciones de vendedores y oficinas en donde la cuota del vendedor es superior al objetivo de la oficina. Select repventas.num_empl, repventas.nombre, repventas.oficina_rep, oficinas.objetivo, repventas.cuota From oficinas, repventas Where cuota>objetivo 68. Muestre las ciudades en donde las ventas superan al objetivo. select ciudad, ventas, objetivo from oficinas where ventas>objetivo 69. Muestre todos los vendedores con ventas superiores a $350.000. Select repventas.num_empl, repventas.nombre, repventas.ventas From repventas Where ventas > 350000; 70. Muestre el nombre, las ventas y la oficina de cada vendedor. Select nombre, ventas, oficina_rep From repventas 71. Liste los nombres de los vendedores y sus directores.

Select nombre, director From repventas 72. Lista los vendedores con una cuota superior a la de su director. select empleado.num_empl, empleado.nombre from repventas As empleado inner join repventas on (empleado.num_empl=repventas.director) where empleado.cuota>repventas.cuota; 73. Liste los vendedores que trabajan en diferentes oficinas que sus directores, mostrando el nombre y la oficina en donde trabaja cada uno. 74. Liste los nombres, cuota y cumpleaños de los vendedores. select nombre,cuota, edad from repventas 75. Muestre todas las combinaciones posibles de vendedor y ciudades. select oficinas.ciudad, repventas.num_empl from repventas, oficinas 76. Muestre todos los vendedores y las ciudades en donde trabajan. select repventas.num_empl,repventas.nombre, oficinas.ciudad from repventas, oficinas 77. Liste el nombre y la empresa y todos los pedidos para el número de cliente 2103. select clientes.num_clie, clientes.empresa, sum(pedidos.cant) from clientes, pedidos where clientes.num_clie=2103 group by clientes.num_clie; 78. Liste los vendedores y las oficinas en que trabajan. Select num_empl, nombre, oficina_rep From repventas 79. Liste los vendedores y las ciudades en que trabajan. select repventas.num_empl, oficinas.oficina, oficinas.ciudad

from repventas, oficinas 80. ¿Cuál es la cuota promedio y las ventas promedio de los vendedores? Select nombre, avg (cuota), avg (ventas) From repventas Group by (num_empl) 81. ¿Cuál es el rendimiento de cuota promedio de los vendedores? select avg(cuota), num_empl from repventas group by num_empl 82. ¿Cuáles son las cuotas y ventas totales para todos los vendedores? Select sum (cuota), sum(ventas) From repventas 83. ¿Cuál es el total de los pedidos aceptados por Bill Adams? select repventas.nombre, sum(pedidos.cant) from pedidos, repventas where repventas.nombre='BILL ADAMS' group by repventas.nombre; 84. Calcule el precio medio de los productos del fabricante ACI. select id_fab,avg(precio) from productos where id_fab='ACI' group by id_fab; 85. Calcule el tamaño medio de un pedido ordenado por Acme Mfg. Select avg(pedidos.cant),clientes.empresa From pedidos, clientes Where clientes.empresa='ACME MFG' Group by clientes.empresa; 86. ¿Cuáles son las cuotas asignadas mínima y máxima?

Select MIN(cuota), MAX(cuota) From repventas 87. ¿Cuál es la fecha de pedido más antigua en la base de datos? select MIN(fecha_pedido) FROM pedidos 88. ¿Cuál es el mejor rendimiento de ventas de todos los vendedores? select Max(ventas),sum(repventas.num_empl) FROM repventas group by repventas.num_empl 89. ¿Cuántos clientes hay? SELECT num_clie, COUNT(*) FROM clientes GROUP BY num_clie; 90. ¿Cuántos vendedores superan su cuota? select nombre,count(num_empl),cuota,ventas from repventas where ventas>cuota group by repventas.nombre,repventas.cuota,repventas.ventas 91. ¿Cuántos pedidos de más de $25.000 hay en la base de datos? SELECT importe, COUNT(*) FROM pedidos GROUP BY importe HAVING importe > 25000; 92. Halle el importe medio de pedidos, el importe total de pedidos, el importe medio de pedido como porcentaje del límite de crédito del cliente y el importe medio de pedido como porcentaje de la cuota del vendedor. 93. ¿Cuántos títulos diferentes tienen los vendedores? SELECT DISTINCT titulo FROM repventas

94. ¿Cuántas oficinas de ventas tienen vendedores que superan a sus cuotas? select count(oficina_rep) from repventas where ventas>cuota 95. ¿Cuál es el tamaño medio de pedidos? SELECT AVG(importe) FROM pedidos 96. ¿Cuál es el tamaño medio de pedidos para cada vendedor? SELECT AVG(importe) FROM pedidos Group by rep; 97. ¿Cuál es el rango de cuotas asignadas en cada oficina? 98. ¿Cuántos vendedores están asignados a cada oficina? SELECT oficina_rep, COUNT(*) FROM repventas GROUP BY oficina_rep; 99. ¿Cuántos clientes diferentes son atendidos por cada vendedor? SELECT count(num_clie), rep_clie FROM clientes group by clientes.rep_clie 100. Calcule los pedidos totales para cada cliente de cada vendedor, ordenados por cliente y dentro de cada cliente por vendedor. select sum(cant),clie,rep from pedidos group by pedidos.clie,pedidos.rep order by clie,rep 101. Calcula los pedidos totales para cada cliente de cada vendedor, ordenados por vendedor, y dentro de cada vendedor por cliente. select sum(cant),rep,clie from pedidos group by pedidos.clie,pedidos.rep

order by rep,clie 102. Calcula los pedidos totales por cada vendedor. Select rep, cant, num_pedido From pedidos 103. ¿Cuál es el tamaño de pedidos promedio para cada vendedor cuyos pedidos totalizan más de $30.000? select rep, avg (cant),importe From pedidos GROUP BY REP, importe HAVING importe>30000 104. Por cada oficina con dos o más persona, calcular la cuota total y las ventas totales para todos los vendedores que trabajan en la oficina. SELECT ciudad, SUM(cuota), SUM(repventas.ventas) FROM oficinas INNER JOIN repventas ON (oficinas.oficina = repventas.oficina_rep) GROUP BY ciudad HAVING COUNT(*) >2; 105. Muestre el precio, la existencia y la cantidad total de los pedidos de cada producto para los cuales la cantidad total pedida es superior al 75%. 106. Liste las oficinas en donde el objetivo de ventas de la oficina excede a la suma de las cuotas de los vendedores individuales. select oficinas.objetivo,oficinas.oficina,sum(repventas.cuota),repventas.num_empl from oficinas,repventas where objetivo> (select sum(repventas.cuota) from repventas) group by oficinas.objetivo,oficinas.oficina, repventas.num_empl 107. Liste los vendedores cuyas cuotas son iguales o superiores al objetivo de la oficina de ventas de Atlanta. select repventas.num_empl, repventas.cuota, oficinas.oficina, oficinas.ciudad,oficinas.objetivo from repventas,oficinas where cuota>=objetivo and oficina=13 and ciudad='ATLANTA';

108. Liste todos los clientes atendidos por Bill Adams(105). SELECT num_clie, rep_clie From clientes Where rep_clie=105; 107. Liste todos los productos del fabricante ACI para los cuales las existencias superan a las existencias del producto ACI-41004. select id_producto,id_fab,existencias from productos where id_fab='ACI' and existencias>'41004'; 108. Liste los vendedores que trabajan en oficinas que superan su objetivo. select repventas.num_empl, repventas.nombre, oficinas.oficina,oficinas.objetivo,oficinas.ventas from oficinas, repventas where oficinas.ventas>oficinas.objetivo 109. Liste los vendedores que no trabajan en oficinas dirigidas por Larry Fith. select repventas.num_empl,repventas.nombre, oficinas.dir from repventas,oficinas where 'LARRY FITCH' is null; 110. Liste todos los clientes que han remitido pedidos de ACI (Fabricante ACI, números de productos que comienzan con 41000) entre enero y junio de 1990. select productos.id_fab, productos.id_producto,pedidos.clie, extract(month from pedidos.fecha_pedido) from pedidos,productos where id_fab='ACI' and id_producto= '41000' and pedidos.fecha_pedido='1990-01-01' AND '1990-06-30'; 111. Liste los productos para los cuales se ha recibido un pedido de $25.000, o más. select productos.id_producto, pedidos.importe from productos, pedidos where pedidos.importe>25000 112. Lista los clientes asignados a Sue Smith que no han remitido en pedido superior a $3.000.

select clientes.num_clie,clientes.empresa,repventas.nombre,pedidos.importe from pedidos,clientes, repventas where pedidos.importe>3000 and repventas.nombre='SUE SMITH'; 113. Lista las oficinas en donde haya un vendedor cuya cuota represente más del 55% del objetivo de las oficinas. 114. Liste los vendedores que han aceptado un pedido que represente más del 10% de su cuota. 115. Lista las oficinas y sus objetivos en donde todos los vendedores tienen ventas que superan al 50% del objetivo de la oficina. 116. Lista los nombres y edades de los vendedores que trabajan en oficinas de la región OESTE. Select nombre, edad, oficina_rep From repventas Where oficina_rep between 21 and 22; 117. Lista los nombres y edades de los vendedores que trabajan en oficinas de la región OESTE. Select nombre, edad, oficina_rep From repventas Where oficina_rep between 21 and 22;

118. Lista los nombres y edades de los vendedores que tienen por encima del promedio. select nombre,edad,avg(ventas) from repventas group by repventas.nombre,repventas.edad 119. Liste los clientes cuyos vendedores están asignados a oficinas en la región de ventas ESTE. select clientes.num_clie,clientes.empresa, repventas.num_empl,oficinas.region from clientes,repventas,oficinas where region='ESTE'; 120. Liste las oficinas de ventas cuyas ventas están por debajo del objetivo medio. select oficina,ventas,avg(objetivo) from oficinas where ventas(select sum(repventas.cuota) from repventas) group by oficinas.oficina 122. Liste los vendedores que tienen más de 40 años y dirigen a un vendedor por encima de la cuota. select empleado.edad, empleado.cuota, empleado.ventas from repventas as empleado inner join repventas on (empleado.edad=repventas.director) where empleado.edad>40 and empleado.ventas>empleado.cuota; 123. Liste los directores mayores de 40 años y que dirigen a un vendedor cuyas ventas superan a la cuota y que no trabaja en la misma oficina de ventas que el director. select empleado.edad, empleado.cuota, empleado.ventas, oficinas.dir from repventas,oficinas as empleado inner join repventas on (empleado.edad=repventas.director) where empleado.edad>40 and empleado.ventas>empleado.cuota and oficina_rep in (select DISTINCT dir from oficinas); 124. Liste los vendedores cuyo tamaño de pedido medio para productos fabricados por ACI es superior al tamaño de pedido medio global. 125. Liste los vendedores cuyo tamaño de pedido medio para productos fabricados por ACI es al menos tan grande como el tamaño de pedido medio global de ese vendedor. Marcar infracción de copyright