- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 11-28-2014 04:08 PM
(1426 views)
Hi,
I'm a little confused by the result of this query. At first I create two data sets with one common observation (value 2). Then I want to get this common observation from set a, but for some reason I get 3 as result. Can someone explain why is the code not working as I planned?
data a;
input x;
cards;
1
2
3
;
run;
data b;
input x;
cards;
2
4
;
run;
proc sql;
select * from a where x=(select * from a intersect select * from b);
quit;
input x;
cards;
1
2
3
;
run;
data b;
input x;
cards;
2
4
;
run;
proc sql;
select * from a where x=(select * from a intersect select * from b);
quit;
2 REPLIES 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
May be this is what you are looking for.
proc sql;
select * from a where x in (select x from b);
quit;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
It does look wrong, and so do the results from
proc sql;
select x, (select x from a intersect select x from b) as y from a;
select x, (select x from b intersect select x from a) as y from a;
quit;
You should submit a "Problem Report" to SAS (link at the bottom of the page) .
PG
PG