Desktop productivity for business analysts and programmers

Aggregates data base

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 19
Accepted Solution

Aggregates data base

Hi, my database need modify existing variables in the Case When syntax for EG.

 

However, I cannot create enough room for condition my new variables:

 

For instance, I can use sas base

data final;
set work.QUERY_FOR_JAN2016_SAS7BDAT1_0003;
if whichone = 'januaryppc' then do;
PRE_MRC = MRC_PRE_JAN;
Post_MRC = MRC_POST_JAN;
pp_from = from_pp_JAN;
pp_to = to_pp_JAN;
changes = changejan;
end;

 

but for EG, I really cannot do that for column changes.

 

Anyway SQL can do multiple column change in a macro statement maybe?


Accepted Solutions
Solution
‎02-23-2016 09:32 AM
Esteemed Advisor
Posts: 5,198

Re: Aggregates data base

This is a typical case where data step logic is more efficient than SQL, at least from a coding/maintenance point of view.

So if you already have a data step, use that in EG. And then use SQL/Query Builder for other steps.

And you could perhaps use a macro here, but I can't see the benefit. The code/task will be less readable, and harder to maintain.

Data never sleeps

View solution in original post


All Replies
Grand Advisor
Posts: 17,396

Re: Aggregates data base

In SQL, either query builder or code, you need a case statement for EACH variable change you want to make.

Trusted Advisor
Posts: 1,059

Re: Aggregates data base

Could you set the month into a macro variable, and then use something like this?

 

...
select
MRC_PRE_&MTH. as PRE_MRC,
MRC_POST_&MTH. as Post_MRC,
from_pp_&MTH. as pp_from,
to_pp_&MTH. as pp_to,
change&MTH. as changes
...

 

Tom

Solution
‎02-23-2016 09:32 AM
Esteemed Advisor
Posts: 5,198

Re: Aggregates data base

This is a typical case where data step logic is more efficient than SQL, at least from a coding/maintenance point of view.

So if you already have a data step, use that in EG. And then use SQL/Query Builder for other steps.

And you could perhaps use a macro here, but I can't see the benefit. The code/task will be less readable, and harder to maintain.

Data never sleeps
☑ This topic is SOLVED.

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

Discussion stats
  • 3 replies
  • 259 views
  • 0 likes
  • 4 in conversation