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 (October 2002, week 5)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Tue, 29 Oct 2002 19:15:07 -0600
Reply-To:     Kevin Myers <KevinMyers@AUSTIN.RR.COM>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         Kevin Myers <KevinMyers@AUSTIN.RR.COM>
Subject:      Re: Duplicates in both tables allowed in MERGE?
Content-Type: text/plain; charset="iso-8859-1"

Other folks have already discussed the fact that merging with repeats of BY variables in more than one input data set has always been allowed, but that the behavior in that scenario isn't what most people really want. A data step can be written that works around this problem using loops, observation pointers, and FIRST./LAST.. However, for the typical solution that most people want, using SQL is generally much easier:

proc sql; create table new as select old1.*, old2.* from old1, old2 where old1.byvar1=old2.byvar2 and old1.byvar2=old2.byvar2 and ... old1.byvarN=old2.byvarN; quit;

If you use the above code fairly literally, you will get a warning about the by variables being in both source tables. You can either list out the variables separately in the select clause, or use different variable names in the two source tables to eliminate that warning.

PROC SQL produces a so-called Cartesian product of the matching rows from the two tables that meet the where clause criteria, and in most cases that is what folks really want when they are trying to merge two tables with repeats of BY variables. On the other hand, the existence of that situation can often point out flaws in the user's understanding of their data structures which need to addressed before proceeding ahead blindly.

s/KAM

----- Original Message ----- From: "Will Dwinnell" <predictr@BELLATLANTIC.NET> Newsgroups: bit.listserv.sas-l To: <SAS-L@LISTSERV.UGA.EDU> Sent: Tuesday, October 29, 2002 12:35 PM Subject: Duplicates in both tables allowed in MERGE?

> One of my older SAS books indicates that the BY column in a MERGE may > have duplicates in either table being merged, but not both (I'll > assume we're merging just two data sets on a single column for now). > Another SAS book doesn't make any mention of this limitation. Is this > still an issue? Was it ever an issue? > > Many thanks...


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