Ayudame con un buscar una solución por favor
Mi intención no es quitarte tu tiempo, pero la verdad es que después de mucho intentar no he podido dar con la solución, debe ser porque soy nuevo en esto. Ayudame por favor
Lo que necesito es aplicar un valor a un campo llamado descuento a los clientes que han ingresado más de 5 veces su auto a una tabla llamada revisión, para luego reiniciar el contador y así después de 5 ingresos más insertar un nuevo descuento. Pero mi problema se presenta por que inserta los descuentos en todos los valares mayores a 5, es decir, no reinicia el contador.
Lo correcto debería ser así
5- Insertar valor
6-
7-
8-
9-
10- insertar valor . Así sucesivamente cada 5 ingresos // múltiplos de 5
Estoy utilizando pl sql
declare cursor agg_desc (c_cli in number)
is
select count (cod_cli)
from revision
where cod_cli = c_cli;
cant number;
c_cli number;
x_desc number;
secuencia number;
max number;
BEGIN
c_cli := &c_cli;
open agg_desc(c_cli);
loop
fetch agg_desc
into cant;
exit when agg_desc%notfound;
dbms_output.put_line('El cliente ha sido ingresado '||cant|| ' veces');
end loop;
close agg_desc;
if cant > 5 then
x_desc := 5;
dbms_output.put_line ('el cliente ' || c_cli|| ' presenta descuento');
ELSE
x_desc := 0;
dbms_output.put_line ('el cliente ' ||c_cli|| ' no presenta descuento');
END IF;
// procedimiento almacenado para insertar
AGG_ING_CLI_REV( num_rev , cod_cli, matricula, mecanico, estado ,valor ,X_DESC, TO_DATE('10-10-10','DD-MM-YY'));
commit;
end;
De ante mano gracias
Lo que necesito es aplicar un valor a un campo llamado descuento a los clientes que han ingresado más de 5 veces su auto a una tabla llamada revisión, para luego reiniciar el contador y así después de 5 ingresos más insertar un nuevo descuento. Pero mi problema se presenta por que inserta los descuentos en todos los valares mayores a 5, es decir, no reinicia el contador.
Lo correcto debería ser así
5- Insertar valor
6-
7-
8-
9-
10- insertar valor . Así sucesivamente cada 5 ingresos // múltiplos de 5
Estoy utilizando pl sql
declare cursor agg_desc (c_cli in number)
is
select count (cod_cli)
from revision
where cod_cli = c_cli;
cant number;
c_cli number;
x_desc number;
secuencia number;
max number;
BEGIN
c_cli := &c_cli;
open agg_desc(c_cli);
loop
fetch agg_desc
into cant;
exit when agg_desc%notfound;
dbms_output.put_line('El cliente ha sido ingresado '||cant|| ' veces');
end loop;
close agg_desc;
if cant > 5 then
x_desc := 5;
dbms_output.put_line ('el cliente ' || c_cli|| ' presenta descuento');
ELSE
x_desc := 0;
dbms_output.put_line ('el cliente ' ||c_cli|| ' no presenta descuento');
END IF;
// procedimiento almacenado para insertar
AGG_ING_CLI_REV( num_rev , cod_cli, matricula, mecanico, estado ,valor ,X_DESC, TO_DATE('10-10-10','DD-MM-YY'));
commit;
end;
De ante mano gracias
1 Respuesta
Respuesta de Rafael Segovia
1