LV

Páginas: 6 (1368 palabras) Publicado: 3 de julio de 2015
EVALUACIÓN PARCIAL 2

NOMBRE ALUMNO: ……………………………………………………………………………………………………
ASIGNATURA: PDB3301 – PROGRAMACION DE BASE DE DATOS
SECCION: 014V
PROFESOR: Leonardo Villarroel Cubillos

PUNTAJE OBTENIDO

NOTA
PUNTAJE MÁXIMO
100 puntos

FECHA
02/06/2015

DURACIÓN
135 minutos


INDICACIONES GENERALES
No se permite uso de celulares, su uso se entenderá como un acto de copia recibiendo la notamínima en su prueba inmediatamente.
No se permite el uso de software colaborativo o chat.
La nota 4,0 se obtiene logrando un 60% del puntaje total.
Cree un archivo SQL denominado APELLIDO_NOMBRE.sql. Guarde en él sus respuestas identificándolas con el número correspondiente a la pregunta.
Al término de su evaluación, envíe su archivo al profesor a leo.villarroel@profesor.duoc.cl con el asunto PP2.PARTE I(100 pts) – Evidencia de competencias prácticas

La farmacia “Cruz Azul” ha recibido el nuevo modelo simplificado de gestión de ventas, al cual los ingenieros de base de datos quieren hacer algunas pruebas funcionales antes de comenzar a programar códigos ejecutables en sus bases de datos. Favor examine el modelo anterior y los datos que contiene a continuación:

Tabla Sucursal


TablaVendedor


Tabla Ventas


Tabla Detalle_venta


Tabla producto


Las pruebas a ejecutar por parte dela farmacia tienen que ver con variables de tipo referencial y escalar, variables de sustitución, el uso de IF y CASE para sus reglas de negocio, el uso de cursores con diferentes tipos de bucles y finalmente el correcto manejo de errores que soporte el modelo. Éstas se harán sobre los siguientesrequerimientos que Ud. Deberá resolver.

1. Se requiere poder conocer a aquel vendedor que haya conseguido el menor monto de ventas de entre todas las ventas sucedidas el 2011. Se requiere saber su código, nombre, edad y género del vendedor. Se requiere que genere un bloque anónimo PLSQL para obtener esta información y mostrarla en pantalla. Además su proceso deberá actualizar el registro delvendedor para ser revisado (columna revisión=’S’). El output esperado se presenta a continuación (15pts).

Código: ABC123
Nombre: XxxxxxxXxxxxxx
Edad: 00 (a la fecha)
Género: Mujer o Hombre

DECLARE
v_min_sum ventas.valor_total%TYPE;
v_cod vendedor.cod_vendedor%TYPE;
v_nom vendedor.nom_vendedor%TYPE;
v_edad NUMBER(2);
v_sexo vendedor.sexo%TYPE;
BEGIN
SELECT MIN(SUM(valor_total))INTO v_min_sum
FROM ventas
GROUP BY cod_vendedor;
SELECT cod_vendedor
INTO v_cod
FROM ventas
GROUP BY cod_vendedor
HAVING SUM(valor_total) = v_min_sum;
SELECT nom_vendedor, trunc(months_between(sysdate,fechnac_vendedor)/12), sexo
INTO v_nom, v_edad, v_sexo
FROM vendedor
WHERE cod_vendedor = v_cod;
DBMS_OUTPUT.PUT_LINE('Codigo: '||v_cod);DBMS_OUTPUT.PUT_LINE('Nombre: '||v_nom);
DBMS_OUTPUT.PUT_LINE('Edad: '||v_edad);
DBMS_OUTPUT.PUT_LINE('Genero: '||CASE v_sexo WHEN 'F' THEN 'Mujer' WHEN 'M' THEN 'Hombre' ELSE 'Otro' END);
UPDATE vendedor
SET revision = 'S'
WHERE cod_vendedor = v_cod;
COMMIT;
END;

2. Se requiere verificar el estado de la base instalada de sucursales de la farmacia, por lo que se le solicita generar un reporteque indique muestre la información de cada sucursal existente en el modelo junto con la cantidad de vendedores que posee. La prueba sólo será considerada exitosa si se usa un loop simple (20pts).

Sucursal: - - -
Fuerza de trabajo: X vendedores

Base instalada: X sucursales

DECLARE
CURSOR cur_suc IS
SELECT *
FROM sucursal;
rec_sucsucursal%ROWTYPE;
v_vendedores NUMBER(2);
BEGIN
OPEN cur_suc;
LOOP
FETCH cur_suc INTO rec_suc;
EXIT WHEN cur_suc%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Sucursal: '||rec_suc.cod_sucursal||' - '||rec_suc.nombre_sucursal||' - '||rec_suc.direc_sucursal||' - '||rec_suc.comuna_sucursal);
SELECT COUNT(*)
INTO v_vendedores
FROM vendedor
WHERE cod_sucursal = rec_suc.cod_sucursal;...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • lV hart
  • Lv Tp
  • Contabilidad lV
  • Calor Lv
  • Lv strategy
  • Ensayo LV
  • ONG LV
  • lv sld

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS