Experimentar 06

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 2

Base de Datos Avanzado I

Experimentar 06
Introducción a Transact SQL – Estructuras – Try / Catch – Raiserror – Transacciones
explícitas.
Objetivo

Desarrollar sentencias Transact que den solución a los problemas propuesto.


Utilice la Base de Datos VENTASCIB (Script entregado en Experimentar 05)

TB_PRODUCTO TB_PROVEEDOR TB_DISTRITO TB_CLIENTE


COD_PRO COD_PRV COD_DIS COD_CLI
DES_PRO RAZ_SOC_PRV NOM_DIS RAZ_SOC_CLI
PRE_PRO DIR_PRV DIR_CLI
STK_ACT TEL_PRV TLF_CLI
STK_MIN COD_DIS RUC_CLI
UNI_MED REP_VEN COD_DIS
TB_VENDEDOR
LIN_PRO COD_VEN FEC_REG
IMPORTADO NOM_VEN TIP_CLI

APE_VEN CONTACTO

SUELDO_VEN
TB_ABASTECIMIENTO
COD_PRV FEC_ING

COD_PRO TIP_VEN

PRE_ABA COD_DIS
TB_FACTURA
TB_DETALLE_COMPRA NUM_FAC
NUM_OCO FEC_FAC
TB_ORDEN_COMPRA TB_DETALLE_FACTURA
COD_PRO COD_CLI
NUM_OCO NUM_FAC
CAN_PED FEC_CAN
FEC_OCO
COD_PRO
EST_FAC
COD_PRV CAN_VEN
COD_VEN
FEC_ATE PRE_VEN
PORC_IGV
EST_OCO

Resolver los siguientes requerimientos:


Utilizando variables locales:
1. Declare, asigne un valor e imprima el valor de una variable de tipo numérico.
2. Declare, asigne un valor e imprima la cantidad de Ordenes de Compra atendidas
por el proveedor 'PR05'.
3. Declare, asigne un valor e imprima la deuda de un cliente (almacene el código del
cliente) por concepto de facturas pendientes (estado de la factura = 1).
4. Declare, calcule e imprima el promedio de antigüedad de los clientes, si es mayor a
15 años imprima 'Cliente Fiel', de lo contario ‘Cliente Nuevo'.
5. Modifique el ejercicio anterior para que se calcule e imprima el promedio de
antigüedad de los clientes, si es mayor de 15 años imprima 'Clientela Fiel' y su límite
de crédito será 2500 soles, pero de lo contario, imprima 'Clientela Nueva' con un
límite de crédito de 1000 soles.
Base de Datos Avanzado I

6. Declare, y determine la siguiente regla de negocios para una determinada factura:


o Si se canceló en un tiempo menor o igual a 10 días y si el monto es menor a
120, su descuento será del 10% del monto global, de lo contrario será de sólo
un 12%
o Si se canceló en más de 10 días no se aplica descuento.
7. Muestre la relación de facturas y una observación literal (dependiendo del valor del
campo EST_FAC: 1: Pendiente, 2: Cancelada y 3: Anulada). Utilice CASE.
8. Muestre el código de cliente y una condición (Deudor o Sin Deudas) dependiendo si
tiene o no, facturas pendientes. Utilice CASE
9. Muestre la descripción de productos y una observación, ésta dependerá de la
comparación entre el stock actual y el stock mínimo:
o Si el stock actual es menor al stock mínimo, la observación deberá indicar
'Abastecerse Urgente'
o Si la diferencia es mayor que cero y menor o igual 500, la observación debe
indicar 'Tome sus precauciones'
o En caso contrario, la observación indicará 'Producto con stock suficiente'
10. Declare e Imprima la sumatoria de los números del 1 al 100.
11. Declare variables (precio promedio, nuevo precio, código de producto), luego realice
lo siguiente:
o Determine el precio promedio de productos Importados,
o Actualice el precio de un determinado producto.
o Confirme la transacción si el nuevo precio es menor al precio promedio
o Caso contrario, deshacer la transacción.
12. Modifique el ejercicio anterior para generar un mensaje de error “Transacción
Anulada”, de severidad leve cuando la transacción no se confirme.
13. Declare variables (similares a campos de la tabla orden de compra), asigne valores,
luego inserte el registro. Deberá controlar el error mostrando el mensaje respectivo
según el error producido (por ejemplo, llaves duplicadas, llaves foráneas
inexistentes, datos incompatibles, etc.).
14. Declare variables (similares a campos de la tabla factura), asigne valores e inserte
el registro, luego considere las siguientes reglas de negocio:
o El valor del código del cliente al igual que el código de vendedor deben existir en
sus respectivas tablas.
o La fecha de cancelación debe ser mayor a la fecha de facturación y no debe
exceder los 15 días.
o Si se cumple con todas las reglas, confirmar la transacción, caso contrario,
generar mensaje de error por cada caso con severidad fuerte.
o Controlar los errores con Try / Catch, mostrando el mensaje respectivo
deshaciendo la transacción.

También podría gustarte