im trying to create a stored procedure that has multiple CASE STATEMENTS I have the following stored procedure:
BEGIN CASE @olds WHEN 'emp' THEN CASE @news WHEN 'loc' THEN UPDATE equipos SET pe=pe-1,pg=pg+1 WHERE id=@eqloc ; UPDATE equipos SET pe=pe-1,pp=pp+1 WHERE id=@eqvis ; UPDATE partidos SET `eqgan` =@news WHERE id=@mst ; UPDATE log_partidos SET `status` =@news WHERE `match` =@mst ; WHEN 'vis' THEN UPDATE equipos SET pe=pe-1,pg=pg+1 WHERE id=@eqvis ; UPDATE equipos SET pe=pe-1,pp=pp+1 WHERE id=@eqloc ; UPDATE partidos SET `eqgan` =@news WHERE id=@mst ; UPDATE log_partidos SET `status` =@news WHERE `match` =@mst ; END CASE; WHEN 'loc' THEN CASE @news WHEN 'emp' THEN UPDATE equipos SET pe=pe+1,pg=pg-1 WHERE id=@eqloc ; UPDATE equipos SET pe=pe+1,pp=pp-1 WHERE id=@eqvis ; UPDATE partidos SET `eqgan` =@news WHERE id=@mst ; UPDATE log_partidos SET `status` =@news WHERE `match` =@mst ; WHEN 'vis' THEN UPDATE equipos SET pp=pp-1,pg=pg+1 WHERE id=@eqvis ; UPDATE equipos SET pg=pg-1,pp=pp+1 WHERE id=@eqloc ; UPDATE partidos SET `eqgan` =@news WHERE id=@mst ; UPDATE log_partidos SET `status` =@news WHERE `match` =@mst ; END CASE; WHEN 'vis' THEN CASE @news WHEN 'emp' THEN UPDATE equipos SET pe=pe+1,pg=pg-1 WHERE id=@eqvis ; UPDATE equipos SET pe=pe+1,pp=pp-1 WHERE id=@eqloc ; UPDATE partidos SET `eqgan` =@news WHERE id=@mst ; UPDATE log_partidos SET `status` =@news WHERE `match` =@mst ; WHEN 'loc' THEN UPDATE equipos SET pp=pp-1,pg=pg+1 WHERE id=@eqloc ; UPDATE equipos SET pg=pg-1,pp=pp+1 WHERE id=@eqvis ; UPDATE partidos SET `eqgan` =@news WHERE id=@mst ; UPDATE log_partidos SET `status` =@news WHERE `match` =@mst ; END CASE; END CASE; END
Each time I performed this procedure, I received the following error: "Case not found for CASE statement" What am I doing wrong?
Enrique benitez
source share