Help using Base SAS procedures

Proc sql question

Accepted Solution Solved
Reply
Contributor
Posts: 57
Accepted Solution

Proc sql question

Hello

I am trying to calculate the sum of a variable per group when/conditional that another variable, venues=1

I tried the code below and does not net the correct resutls. I also tried using 'having'. Both having and where, keep in the produced table only those rows where venues=1.

I would like to have the sum for those where venues=1 but in this column (venuest1) also keep the rest of the rows in the dataset where venues ne 1, simply add them by = 0.

so the code in my opinion should include something of the type if venues=1 then do,  'else' venuest1=0

I am a beginnger in proc SQL so any suggestions how to solve this are more than welcome.

proc sql;

create table neo.regtest1 as

select * , sum(absvolume) as venuesT1

from neo.regtest

where venues=1

group by cptyname;

run;

Many thanks in advance!!

Neo


Accepted Solutions
Solution
‎11-21-2013 12:31 PM
Super User
Posts: 17,868

Re: Proc sql question

Something like the following may work:

If it doesn't, post sample data and sample expected output.

proc sql;

create table neo.regtest1 as

select * , sum(absvolume*(venues=1)) as venuesT1

from neo.regtest

group by cptyname;

run;

View solution in original post


All Replies
Solution
‎11-21-2013 12:31 PM
Super User
Posts: 17,868

Re: Proc sql question

Something like the following may work:

If it doesn't, post sample data and sample expected output.

proc sql;

create table neo.regtest1 as

select * , sum(absvolume*(venues=1)) as venuesT1

from neo.regtest

group by cptyname;

run;

Contributor
Posts: 57

Re: Proc sql question

worked Smiley Happy thanks for the timely feedback

Contributor
Posts: 21

Re: Proc sql question

You need to include sample data, otherwise it is next to impossible to suggest anything helpful.

☑ This topic is SOLVED.

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

Discussion stats
  • 3 replies
  • 178 views
  • 1 like
  • 3 in conversation