DATA Step, Macro, Functions and more

Sas programming question

Accepted Solution Solved
Reply
Contributor
Posts: 20
Accepted Solution

Sas programming question

how can i find the credit card numbers which  range from A1-A100 for all the 3 types Gold, Platinum and Titanium, if there is any card holder with any other value, i need to create a dataset and excel file “Invalid_Cards”. Remove these invalid customers from the list of Individual cards list.

 

 

excel1.PNG


Accepted Solutions
Solution
‎11-25-2016 09:42 AM
Super User
Posts: 9,691

Re: Sas programming question

Post your data as text NOT picture.

data have;
input id x $20.;
cards;
1 Gold
1 Platinum 
1 Titanium
2 Gold
2 Platinum 
2 Titanium
2 xxxx
;
run;
proc sql;
create table invalid as
select *
 from have
  group by id
   having sum(x not in ('Gold' 'Platinum' 'Titanium')) ne 0;
quit;

View solution in original post


All Replies
Super User
Super User
Posts: 7,430

Re: Sas programming question

Is this a SAS question or and Excel question? From what you have posted you haven't even imported the data into SAS.  If you need to do this in Excel, best place would be an Excel forum.  If you need to use SAS, then start by importing your data to three datasets, then apply your logic in a datastep (where 1 <= input(compress(customer,,"a),best.) <= 100, for instance).  Then you export the data again using proc export or ods tagsets or libname excel etc.

Solution
‎11-25-2016 09:42 AM
Super User
Posts: 9,691

Re: Sas programming question

Post your data as text NOT picture.

data have;
input id x $20.;
cards;
1 Gold
1 Platinum 
1 Titanium
2 Gold
2 Platinum 
2 Titanium
2 xxxx
;
run;
proc sql;
create table invalid as
select *
 from have
  group by id
   having sum(x not in ('Gold' 'Platinum' 'Titanium')) ne 0;
quit;

☑ This topic is solved.

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

Discussion stats
  • 2 replies
  • 280 views
  • 1 like
  • 3 in conversation