Professional Documents
Culture Documents
BD Tarea2 Rafaelalcedo
BD Tarea2 Rafaelalcedo
base de datos ya creada, los problemas del ejercicio 22 de una Oficina Ferretera desde el
1 al 60.
3. Obtener un listado de los empleados ordenados por volumen de ventas sacando primero
los de mayor ventas.
R. Se hace consulta del volumen de ventas sacando primero las mayores ventas en este caso
utilizamos ORDER BY ventas DESC para darle orden a ventas de mayor a menor en la tabla
REPVENTAS.
4. Muestra las ventas de cada oficina, ordena por orden alfabético de región y dentro de
cada región por ciudad.
R. Se hace la consulta de las ventas por oficina ordenadas por región, ciudad y ventas en la tabla
OFICINAS la cual se ordenará por región y ciudad.
5. Lista las oficinas clasificadas por región y dentro de cada región por ganancia (ventas –
objetivo) de modo que las de mayor ganancia aparezcan de primeras.
R. Se hace la consulta de las oficinas con clasificación por región de ventas y su objetivo por la
ganancia en donde aparezca la de mayores ganancias primero en la tabla OFICNAS.
SELECT NOMBRE
FROM REPVENTAS
WHERE OFICINA_REP ='12'
AND EDAD > 30;
8. Lista las oficinas cuyas ventas estén por debajo del 80% de su objetivo.
R. Se hace la consulta del 80% de las ventas de las oficinas en base a su objetivo.
SELECT OFICINA
FROM OFICINAS
WHERE VENTAS < OBJETIVO * 0.8;
9. Lista los empleados cuyas ventas estén comprendidas entre 10.000 y 500.00.
R. Se hace la consulta de los empleados cuyas ventas sean entre 100.000 y 500.00 en la tabla
REPVENTAS.
R. Se realiza la consulta de los empleados que están en las oficinas 12, 13 y 16 en la tabla
REPVENTAS.
R. Se hace la consulta de todos los empleados que empiecen con Luis en este caso saldrá en blanco
por tema de que no tenemos creado ningún empleado con este nombre.
13. Obtener una lista de todos los productos, indicando para cada uno su id_fab, id_producto,
descripción_n, precio y precio con IVA (es el precio aumentado en un 16%).
R. Se hace la consulta sobre los productos donde queremos el ID_FAB, ID_PRODUCTO,
DESCRIPCION_N, DESCRIPCION, PREICO Y PRECIO CON IMPUESTO.
14. De cada pedido se requiere saber el numero de pedidos, FAB, PRODCUTOS, CANTIDAD,
PRECIO UNITARIO E IMPORTE.
R. Se realiza consulta sobre los productos al cual queremos saber la cantidad entre el importe para
que nos de el precio por unidad.
15. Obtener las oficinas ordenadas por orden alfabético de región dentro de cada región por
ciudad, si hay mas de una en la misma ciudad, aparecerá primero la que tenga el número
de oficina mayor.
R. Se realiza la consulta de la tabla OFICINAS donde queremos ordenarlas de la siguiente manera
región, ciudad y oficina.
17. Listar las cuatro líneas de pedido más caras (las de mayor importe).
18. Obtener de los pedidos fab, producto, cantidad, precio unitario e importe, pero sacando
las 5 líneas de pedido de menor precio unitario.
R. Se realiza consulta de los 5 productos vendidos a menor importe unitario.
SELECT * FROM (
SELECT NUM_PEDIDOS, FAB, PRODUCTO, CANT, (IMPORTE / CANT) AS PRECIO_UNITARIO,
IMPORTE
FROM PEDIDOS
ORDER BY PRECIO_UNITARIO
)
WHERE ROWNUM <= 5;
19. Lista los números de los empleados que tienen oficina asignada.
R. Se realiza consulta de los empleados que no tienen oficina asignada.
SELECT NUM_EMPL
FROM REPVENTAS
WHERE OFICINA_REP IS NULL;
21. Lista los datos de las oficinas de las regiones del norte y este (tienen que aparecer primero
las del norte y después las del este).
R. Se realiza consulta de la tabla OFICINAS las regiones norte y este donde solamente existe en
este.
25. Listar los pedidos mostrando su número, importe, nombre de cliente y el límite de crédito
del cliente correspondiente (todos los pedidos tienen cliente y representante).
R. Se realiza consulta en la tabla pedidos donde queremos que se muestre los datos.
R. Se realiza consulta de tabla REPVENTAS Y OFICINAS y utilizamos LEFT JOIN para que aparezcan
los empleados que no tienen oficina.
27. Listar las oficinas con objetivo superior a 600.000 bs. Indicando para cada una de ellas el
nombre de su director.
R. Se consulta las oficinas con un monto objetivo de 600000 y sus directores utilizamos RIGHT JOIN
para que salgan los directores asociados.
28. Listar los pedidos superiores a 25.000 bs, incluyendo el nombre del empleado que tomo el
pedido y el nombre del cliente que solicito.
R. Se realiza consulta de los pedidos superiores a 25000 bs donde incluimos datos de las tablas
REPVENTAS, CLIENTES Y PEDIDOS.
29. Hallar los empleados que realizaron su primer pedido el mismo dia en que fueron
contratados.
R. Se realiza consulta de los pedidos con fecha igual a la contratación del representante de ventas.
SELECT REPVENTAS.*
FROM REPVENTAS INNER JOIN PEDIDOS
ON PEDIDOS.REP = REPVENTAS.NUM_EMPL
WHERE FECHA_PEDIDO <= CONTRATO;
30. Listar los empleados con una cuota superior a la de su jefe; para cada empleado sacar sus
datos y numero, nombre y cuota de su jefe.
31. Listar los códigos de los empleados que tienen una línea de pedido superior a 10.000 bs o
que tengan una cuota inferior a 10.000 bs.
R. Se realiza una consulta sobre los códigos de los empleados que tienen una línea de pedido
superior a 10.000 bs y inferior al mismo monto.
SELECT REP
FROM PEDIDOS
WHERE IMPORTE > 10000
UNION
SELECT NUM_EMPL
FROM REPVENTAS
WHERE CUOTA < 10000;
32. Obtener el importe total de ventas de todos los empleados y el mayor objetivo de las
oficinas asignadas a los empleados.
R. Se realiza consulta donde el total de importe de ventas de todos los empleados y el objetivo
mayor salgan en la consulta.
34. ¿Cuál es la cuota media y las ventas medias de todos los empleados?
R. Se realiza consulta de la tabla pedidos donde queremos el precio y ventas promedio con
importe.
37. ¿Cuál es el importe total de los pedidos realizados por el empleado PAUL CRUZ?
R. Se realiza consulta con el COUNT para tener la suma de todos los pedidos que son mayores al
monto.
SELECT COUNT(*) AS CUANTOS_PEDIDOS_MAYIRES
FROM PEDIDOS
WHERE IMPORTE > 250.000;
40. Listar cuantos empleados están asignados a cada oficina, indicar el numero de oficinas y
cuantos hay asignados.
R. Se realiza consulta utilizando count para sumar todas las oficinas asignadas con su numero
organizado en group by.
R. Se realiza una consulta sobre el número, nombre e importe vendido por empleado se realiza un
sum para el total y inner join para visualización entre bases de datos.
R. Se realiza consulta donde salgan los empleados con suma de más de 300.000 bs y su importe
medio AVG Y HAVING SUM.
R. Se realiza consulta sobre el total de pedidos superior al 75% de stock sum sumamos importes
iner join consultamos entre tablas group by agrupamos having sum con order by.
R. Se realiza consulta de empleados con ventas superiores a la cuota, pero no cuales si no cuantas
hay entonces hacemos count para contar las oficinas disctinct para omitir los resultados
duplicados.
R. Se realiza consulta donde la empresa quiere saber primer contrato en fecha por todos los
pedidos hechos con min buscamos fechas.
46. Listar los nombres de los clientes que tienen asignados el representante BILL ADAMS
(suponiendo que no puede haber representantes con el mismo nombre).
R. Se realiza consulta de los clientes que tiene asignado un representante en específico.
SELECT EMPRESA
FROM CLIENTES
WHERE REP_CLIE <= (SELECT NUM_EMPL
FROM REPVENTAS
WHERE NOMBRE <= 'BILL ADAMS');
47. Listar los vendedores (num_empl, nombre y n° de oficina) que trabajan en oficinas
‘’buenas’’ (las que tienen ventas superiores a su objetivo
R Se realizan 3 soluciones a la consulta las cuales son:
R. Se realiza consulta de los clientes asignado a MARY JONES que no le ah hechos pedidos por
encima de 3000 bs.
52. Listar las oficinas en donde todos los vendedores tienen ventas que superan el 50% de los
objetivos de la oficina.
R. Se realizan 2 consultas para las oficinas con vendedores que superan el 50%.
R. Se hace la consulta sobre las cuotas que suman los vendedores con mayor índice.
UPDATE PRODUCTOS
SET PRECIO = PRECIO * 1.05
WHERE ID_FAB ='ACI';
55. Añadir una oficina para la ciudad de Caracas, con el numero de oficina 30, con un objetivo
de 100000 y región centro.
R. Se realiza la inserción de la data en la tabla de OFICINAS.
INSERT INTO OFICINAS VALUES (30, 'CENTRO', 'MADRID', NULL, 100000, 0);
UPDATE REPVENTAS
SET OFICINA_REP = 30
WHERE OFICINA_REP = 21;
57. Eliminar los pedidos del empleado 105.