Oracle - Cambiar tipo de cliente

 
Vista:

Cambiar tipo de cliente

Publicado por sneider (1 intervención) el 01/01/2007 22:00:34
Buenas.Tengo unas tablas relacionadas para la gestion de reservas de un hotel. Tablas como por ejemplo CLIENTE,TIPO_CLIENTE,RESERVAS,ETC..

Pues bien, me ha surgido un problema que no se como resolverlo. La cuestion es la siguiente:
Como puedo hacer para que un cliente que no sea tipo de cliente =grupo, si realiza mas de 3 reservas en 2 años , pasará a ser cliente de tipo preferente.

No se por donde coger esta situacion. Espero puedan ayudarme y dar con la solucion. Muchas gracias y FELIZ AÑO 2007.

PD: estoy bajo forms 6i, sql y PL/SQL
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cambiar tipo de cliente

Publicado por Hector (127 intervenciones) el 02/01/2007 02:26:56
Hola.

Hay dos lugares posibles donde puedes capturar tu cambio de cliente. En ambos lugares funcionaria igual.

Puede ser en el trigger post-insert de tu forma de mantenimiento de reservas on el trigger after_Insert de la tabla de reservaciones.

Cuando se haga una reservacion, deberas hacer un chequeo parecido a este (por favor aplica la sintaxis correcta dependiendo el lugar donde lo uses, y corrigelo, porque lo voy a escribir de memoria):

Declare
V_Dummy Number;
Begin
Select Count(*)
Into V_Dummy
From Reservas
Where Cliente = :Old.Cliente
And Fecha Between sysdate-(365*2) and Sysdate;
If V_Dummy >2 Then
Update Cliente
Set Tipo = 'FRECUENTE'
Where Cliente = :Old.Cliente
And Tipo In ('INFRECUENTE', 'INCONSTANTE');
End If;
End;

El calculo de las fechas, puedes hacerlo de otra manera, esta es una manera sencilla de saber que han pasado dos años. Si no puedes hacer el between mas o menos asi:

Between To_Date(To_Cha(Sysdate, 'dd/mm/')||to_char(to_number(sysdate, yyyy)-2) And Sysdate

Que lo que hace es sacar la parte del dia y mes, y sumarla a la parte del año menos dos, que es mas exacto, pero mas complejo.

Ojala haya podido ayudarte.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar