I am attempting to do a calculated column in my SQL that takes
Merchandise_AMT - Changed_Price
There are several instances where the value in changed price is '.' I tried doing a missing statement to replace all '.' with '0' but the calculation had the same affect. Does anyone know how to treat the '.' as an actual zero so the calculation will work as intended?
DZ
I can't test it at the moment, but how about if you use the sum function? e.g.:
data have;
input x y;
cards;
1 2
1 .
5 7
7 5
. 6
;
proc sql;
create table want as
select *,sum(x,y*-1) as diff
from have
;
quit;
I can't test it at the moment, but how about if you use the sum function? e.g.:
data have;
input x y;
cards;
1 2
1 .
5 7
7 5
. 6
;
proc sql;
create table want as
select *,sum(x,y*-1) as diff
from have
;
quit;
Art297 has a good suggestion.
I have also used this method with success - basically I test if Price is empty and only do the calculation if it's not. My else value can be 0 indicating no change or it could be amount if that makes more sense in your calculation.
,case
when price ge 0 then Amt - price
else 0 /*You may want this to be Amt*/
end as new_var
God I love you guys/gals!!! You are so smart.
Thank yoiu so much for all of your input... both of you!
My report is finally completed!!!
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.