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
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;
Since CLAIM_NO seems to be numeric in both tables you are using, simply dropping the INPUT function part should do the job.
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;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.