Desktop productivity for business analysts and programmers

Calculate a missing field

Accepted Solution Solved
Reply
Contributor
Posts: 70
Accepted Solution

Calculate a missing field

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


Accepted Solutions
Solution
‎02-28-2012 07:00 PM
PROC Star
Posts: 7,433

Re: Calculate a missing field

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;

View solution in original post


All Replies
Solution
‎02-28-2012 07:00 PM
PROC Star
Posts: 7,433

Re: Calculate a missing field

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;

Contributor
Posts: 40

Calculate a missing field

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

Contributor
Posts: 70

Calculate a missing field

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!!!

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 170 views
  • 3 likes
  • 3 in conversation