Autor Tema: ejercicio resuelto triggers Oracle SQL modificar registros cuando ocurre evento  (Leído 1843 veces)

rob25

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 10
    • Ver Perfil
Buenas necesito ayuda con un ejercicio de triggers que os adjunto

CONSIGNA DEL EJERCICIO

Citar
Clientes (id, nombre)
Clientes_VIP{id, nombre)
Vendedores (id, nombre)
Ventas (id_cliente, id_ vendedor, importe, fecha)
Log (id, mensaje)

l. Al realizar una venta, si el importe es superlor a 500€, el cliente pasará a ser cliente vip (se insertará en una nueva tabla clientes_vip, con los campos id, nombre y fecha en que se inserta el registro)
2. De igual manera, al realizar una venta, si el cliente es VIP se aplicará un descuento de un 10% al Importe de la venta.
3. Igualmente, cuando un cliente realice su primera compra recibirá un descuento del 20%.
4. Y si la primera venta de un vendedor es superior a 1000 euros el nombre del vendedor pasará a mayúsculas

El ejercicio 1 lo tengo ya hecho y funciona correctamente.

Código: [Seleccionar]
create or replace NONEDITIONABLE trigger ej1p after insert or update on ventas for each row

DECLARE

vimporte ventas.importe%type := :new.importe;
vnombre clientes.nombre%type;
vid clientes.id%type := :new.id_cliente;


BEGIN

Select nombre into vnombre from clientes where id=:new.id_cliente;

if(vimporte > 500) then

INSERT INTO clientess_vip VALUES (vid, vnombre, sysdate);

end if;

END;

El problema esta en el ejercicio 2 el cual no entiendo como plantearlo, no entiendo como puedo hacer que se coja el descuento del 10%. Yo he pensado en esto pero no funciona:
Código: [Seleccionar]
create or replace trigger ej2p after insert or update on ventas for each row

DECLARE

vimporte ventas.importe%type := :new.importe;
vid clientess_vip.id%type := :new.id_cliente;

BEGIN

:new.importe := :new.importe*1.10;

END;
« Última modificación: 18 de Septiembre 2020, 19:37 por Ogramar »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".