Hola a todos, He estado intentando hacer un ejercicio el cual me pide calcular
la comision a un vendedor por la venta de un producto determinado , He creado el procedimiento y he creado el trigger y me lo deja ejecutar, Sin embargo cuando voy a a realizar un Insert en ventas con el Mismo numero de Vendedor me aparece este aviso
Cita: Script line: 12 Result consisted of more than one row
Tengo las siguientes Entidades:
Drop table if exists Ventas;
Create table Ventas (
Numero_Venta Integer(10) Primary key not null,
Importe Integer(10) Not null,
Cedula_Vendedor Integer(10)Not null,
Codigo_Producto Varchar(15) Not Null,
Tipo_Producto Varchar(10) Not null
);
Drop table if exists Comisiones;
Create table Comisiones (
Comision_Vendedor Integer(10) Not null,
Cedula_Vendedor Integer(10) Not null
);
Este es el Procedimiento:
Delimiter //
Drop procedure if exists Comisiones;//
Create procedure Comisiones (In Vendedor Integer(10))
Begin
Declare Existe Bool;
Declare Comision Integer(10);
Declare TipoProducto Varchar(15);
Declare Suma Integer(10);
Select Tipo_Producto into TipoProducto from Ventas where Vendedor=Cedula_Vendedor;
If TipoProducto = 'Importado' then
Select sum(Importe) into Suma from ventas WHERE Vendedor = Cedula_Vendedor;
SET Comision =Suma + (Suma * 0.15);
ElseIF
TipoProducto like 'Nacional' then
Select sum(Importe) into Suma from ventas WHERE Vendedor = Cedula_Vendedor;
SET Comision = Suma + (Suma * 0.20);
end if;
Select count(1)>0 into Existe from Comisiones where Vendedor = Cedula_Vendedor;
if existe then
UPDATE Comisiones set Comision_Vendedor = (Comision_Vendedor +Comision) where Vendedor = Cedula_Vendedor;
else
insert into Comisiones values (Comision,Vendedor);
end if;
End;
Select count(1)>0 into Existe from Comisiones where Vendedor = Cedula_Vendedor;
if existe then
UPDATE Comisiones set Comision_Vendedor = Comision where Vendedor = Cedula_Vendedor;
else
insert into Comisiones values (Comision,Vendedor);
end if;
End;
Y aqui esta el Trigger
Delimiter //
Drop trigger if exists Ejemplo6;//
Create trigger Ejemplo6
After Insert on Ventas
For each row
Begin
Call Comisiones(New.Cedula_Vendedor);
End;//
Delimiter
Y estos son los datos que intento Ingresar:
Insert into Ventas values (1,10000,90029192,'Pr001','Importado');
Insert into Ventas values (2,10000,90029192,'Pr002','Nacional');
Insert into Ventas values (3,50000,37918205,'Pr003','Nacional');
Espero alguien me pueda ayudar con este problemita, Gracias !!!!...........