Hola amigos como les va?
Bueno aca tengo un procedimiento que segun los parametros va a devolver las ventas de entre fecha desde y hasta, la sucursal y el tipo
E = efectivo
T = Tarjeta
C = Cuenta
en la variable tipo de paso el parametro de lo que necesito
y esa variable es controlada con los if para ver que se necesita
el tema es que le pase el parametro que le pase siempre trae todas las ventas de esas fechas, es decir que si tipo es E o C o T o cualquier conjugacion siempre trae todo
cual es el error ???
como puedo hacerlo con CASE ???
Código:
CREATE DEFINER=`root`@`localhost` PROCEDURE `consultacajaventas`(fechac1 datetime, fechac2 datetime, sucursalc varchar(1), tipoc varchar(3))
BEGIN
declare tipo varchar(3);
set tipo = tipoc;
if tipo = 'E' then
select codventa, importetotal from ventas where estado <> 'baja' and tipo = 'E' and sucursal = sucursalc and fecha between fechac1 and fechac2;
end if;
if tipo = 'T' then
select codventa, importetotal from ventas where estado <> 'baja' and tipo = 'T' and sucursal = sucursalc and fecha between fechac1 and fechac2;
end if;
if tipo = 'C' then
select codventa, importetotal from ventas where estado <> 'baja' and tipo = 'C' and sucursal = sucursalc and fecha between fechac1 and fechac2;
end if;
if tipo = 'ET' then
select codventa, importetotal from ventas where estado <> 'baja' and tipo <> 'C' and sucursal = sucursalc and fecha between fechac1 and fechac2;
end if;
if tipo = 'ETC' then
select codventa, importetotal from ventas where estado <> 'baja' and sucursal = sucursalc and fecha between fechac1 and fechac2;
end if;
if tipo = 'EC' then
select codventa, importetotal from ventas where estado <> 'baja' and tipo <> 'T' and sucursal = sucursalc and fecha between fechac1 and fechac2;
end if;
if tipo = 'TC' then
select codventa, importetotal from ventas where estado <> 'baja' and tipo <> 'E' and sucursal = sucursalc and fecha between fechac1 and fechac2;
end if;
end
Muchas gracias por su ayuda