DATA Step, Macro, Functions and more

INPUT function requires a character argument

Accepted Solution Solved
Reply
Highlighted
Occasional Learner
Posts: 1
Accepted Solution

INPUT function requires a character argument

Hi

 

Can someone please help me. I am trying to run the following query:

 

Proc SQL;
Create table Temp as
Select *
from MM.mom_Claims
Where CLAIM_NO in (Select input(CLAIM_NO,15.) from PMB_ICD_Codes);

Quit;

 

 

However I am getting the following error:

8157 Proc SQL;
8158 Create table Temp as
8159 Select *
8160 from MM.mom_Claims
8161 Where CLAIM_NO in (Select input(CLAIM_NO,15.) from PMB_ICD_Codes);
ERROR: INPUT function requires a character argument.
ERROR: INPUT function requires a character argument.
ERROR: Expression using IN has components that are of different data types.
NOTE: The IN referred to may have been transformed from an OR to an IN at some point during PROC SQL WHERE clause
optimization.
8162
8163 Quit;

 

Note: In both the PMB_ICD_Code and mom_Claims file the CLAIM_NO field has the following attributes:

 

Lenght: 8

Format: 10.

Informat: 10.

Type: Numeric

 

I am not sure how to rewrite this as a I am very new to SAS.


Thanks in advance


Accepted Solutions
Solution
‎07-17-2017 06:22 AM
Super User
Posts: 7,447

Re: INPUT function requires a character argument

Since CLAIM_NO is already numeric, the input function is not needed.

Do this:

proc sql;
create table temp as
select *
from mm.mom_claims
where CLAIM_NO in (select CLAIM_NO from PMB_ICD_Codes);
quit;
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers

View solution in original post


All Replies
PROC Star
Posts: 653

Re: INPUT function requires a character argument

Since CLAIM_NO seems to be numeric in both tables you are using, simply dropping the INPUT function part should do the job.

Solution
‎07-17-2017 06:22 AM
Super User
Posts: 7,447

Re: INPUT function requires a character argument

Since CLAIM_NO is already numeric, the input function is not needed.

Do this:

proc sql;
create table temp as
select *
from mm.mom_claims
where CLAIM_NO in (select CLAIM_NO from PMB_ICD_Codes);
quit;
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
☑ This topic is solved.

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

Discussion stats
  • 2 replies
  • 235 views
  • 3 likes
  • 3 in conversation