The line
if Price ge 12.99 then Price_Gp="A";
executes and sets the Price_Gp value to "A" for Hula-Hoop. This overwrites the value of Price_Gp="C" that was obtained in the previous line.
Since you don't want that, you need to make sure the above line does not execute for Hula-Hoop. This code would look like
data WORK.GROUPS;
set WORK.TOYS;
if Group="Outdoors" then Price_Gp="C";
ELSE if Price ge 12.99 then Price_Gp="A";
else if Price ge 8.99 then Price_Gp="B";
run;
Now, for Outdoors toys, the lines that check the Price will not be used; and for toys that are not Outdoors, the price checks are the only lines that will be used.
--
Paige Miller