Help using Base SAS procedures

Merge SAS Dataset issue

Reply
N/A
Posts: 0

Merge SAS Dataset issue

Hi All,
I am creating a sas dataset 1 through the data file using Infile option and
creating sas dataset 2 by pulling data from tables. When I do a merge I am having issue like even though the records are not matching , the result is showing as change. the code snippets are below:

Dataset 1:
data old.test_file;
infile samplefile lrecl=90 recfm=f;
input @1 column1 $char1.
@2 column2 $char3.
@5 column3 $char26.
@31 column4 $char10.
@41 column5 $char50.
run;

Dataset 2:

create table new.test_file as
select * from connection to db2

(select
cast(' ' as char(1)) as column1,
cast(' ' as char(3)) as column2,
cast(' ' as char(26)) as column3,
cast(' ' as char(10)) as column4,
cast(' ' as char(50)) as column5)
from table name
disconnect from DB2;
quit;


Merge operation:

DATA change_records;
merge old.test_file(IN=INOLD rename = (column1 = column1_o
column2 = column2_o
column3 = column3_o
column4 = column4_o))
new.test_file(IN=INNEW);
BY keycolumns;
if INOLD and ~ INNEW then delete;
else if ~ INOLD and INNEW then delete;
else if INOLD AND INNEW
then do;
if column1 = column1_o and
column2 = column2_o and
column3 = column3_o and
column4 = column4_o and
column5 = column5_o
then delete;
end;

By using the above merge operation, I want to find the change records in both the datasets by matching through the KEY columns. But the result is , the change record it is showing in the output file is actually there is no change the datasets records. But it shows as change. I am not sure abt the reason. my vague quess would be the format issues, the data it is showing as change eventhough there is no change.

Can somebody help on this. correct me if my approach is not correct.
Thanks.
Super Contributor
Super Contributor
Posts: 3,174

Re: Merge SAS Dataset issue

Recommend you post a SASLOG with some type of example condition. Also, for your own diagnosis, add a SAS PUT _ALL_; to your DATA step, but it will need to go prior to any OUTPUT / DELETE and also after your assignments. I'm convinced this additional info (from the PUT) will help with debugging your SAS DATA step processing.

Scott Barry
SBBWorks, Inc.
Ask a Question
Discussion stats
  • 1 reply
  • 114 views
  • 0 likes
  • 2 in conversation