BookmarkSubscribeRSS Feed
jcis7
Pyrite | Level 9

How do you create one table from two to retain observations in Table 1 (Dogs) that don't match IDs in Table 2 (Cats)?

Table 1 Name: Dogs

ID  Name       Address              Type

1   Sinclair     50 Haven Dr.        Dog

2   Cathy       23 Appian Way     Dog

5   Demitri     30 Ione Ln            Dog 

Table 2 Name:  Cats

ID   Name      Address              Type

1    Sinclair    50 Haven Dr.         Cat

2    Cathy      23 Appian Way      Cat

3    Dione      123 High Tower      Cat

Results Table:

ID  Name       Address            Type

5   Demitri     30 Ione Ln            Dog 

I don't know how to select this using sql? Or is a better way to do it?  Any help is much appreciated!  Thanks!

proc sql;

     create table as;

      select dog.ID, dog.Name, dog.Address, dog.Type

  from dogs

where.....

2 REPLIES 2
Doc_Duke
Rhodochrosite | Level 12

Try this:

CREATE TABLE want AS

SELECT *

FROM dog

WHERE dog.id NOT IN (select id from cat);

In the SQL manual, the "select" in the WHERE clause is called a "subquery."  See

SAS(R) 9.2 SQL Procedure User's Guide

for more examples.

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 521 views
  • 0 likes
  • 2 in conversation