LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (June 2010, week 1)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Tue, 1 Jun 2010 12:07:15 -0400
Reply-To:     "W. Matthew Wilson" <matt@TPLUS1.COM>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         "W. Matthew Wilson" <matt@TPLUS1.COM>
Subject:      Join SQL table with a SAS dataset?
Content-Type: text/plain; charset=ISO-8859-1

I have two lists of employees. One list is stored in a SQL database, with one row per employee. The other list is stored in a SAS dataset, also with one row per employee.

I want to join the two lists together and find all the employees in the SQL database and not in the SAS dataset.

I tried this:

proc sql;

connect to OLEDB as SQLCONN (init_string="...");

create table nonmatched_employees as select * from connection to SQLCONN ( select sqltable.id from sqltable left join sasdataset on sqltable.id = sasdataset.id where sasdataset.id is null );

quit;

The idea is that I want to left join all the rows in the SQL table with their SAS counterparts, and only keep the SQL table rows that have no match. This fails though. I get this cryptic error:

ERROR: Describe error: IColumnsInfo::GetColumnInfo failed. : Deferred prepare could not be completed.: Statement(s) could not be prepared.: Invalid object name ...

Am I going about this in the wrong way? How else can I compare a SAS dataset with a SQL table? Do I need to convert the SQL table into SAS first?

Matt

-- W. Matthew Wilson matt@tplus1.com http://tplus1.com


Back to: Top of message | Previous page | Main SAS-L page