새로운 기능 SQL - 올바른 차원 정보를 얻기 위해 crseinfo 테이블에 사실 테이블 crselist를 가입시키고 싶습니다. 상관 관계가있는 하위 쿼리를 작업했지만 아무도 원하는 결과를 얻지 못했습니다 (아래). crseinfo 테이블은 199610 년 초에 아트 508이 대학 09에 속하며 OkArt라고해야한다고 말합니다. 2002 년과 2003 년에 업데이트됩니다. Crselist는 실제로 가르친 과목을 나열합니다. 내가 좋아하는 뭔가를 할 수있는 것처럼 보일 것입니다사실 테이블을 (Kimball type 2?) SAS에 천천히 변화하는 날짜에 가입시키는 방법
data desired ;
input crsenme $ crsenum term section $ crsecollege $ crsedesc $9.;
cards;
ART 508 199610 01 09 OkArt
ART 508 199610 02 09 OkArt
ART 508 199610 03 09 OkArt
ART 508 199710 01 09 OkArt
ART 508 200220 01 18 WowItsArt
ART 508 200220 02 18 WowItsArt
ART 508 201020 01 18 SuperArt
ART 508 201120 01 18 SuperArt
;
는 SAS 도움말 페이지 (http://web.utk.edu/sas/OnlineTutor/1.2/en/60477/m70/m70_52.htm) 참조 :
data crseinfo ;
input crsenme $ crsenum crsefx crsecollege $ crsedesc $9.;
cards;
ART 508 199610 09 OkArt
ART 508 200220 18 WowItsArt
ART 508 200300 18 SuperArt
;
run;
data crselist;
input crsenme $ crsenum term section $;
cards;
ART 508 199610 01
ART 508 199610 02
ART 508 199610 03
ART 508 199710 01
ART 508 200220 01
ART 508 200220 02
ART 508 201020 01
ART 508 201120 01
;
run;
원하는 결과는 것
proc sql ;
select *
from crseinfo a, crselist b
where a.crsenme eq b.crsenme and
a.crsenum eq b.crsenum and
b.term eq (select min(c.term)
from crselist c
where c.term ge a.crsefx)
;
quit;
을하지만이 수행 작동하지. SQL 기반 솔루션에 관심이 있습니다. 시간 내 주셔서 감사합니다.
감사합니다. 그것은 내가 꼼짝 않고 바라본 상관 관계가있는 하위 쿼리와 완전히 다릅니다. 나는 아직도 그것이 코르를 사용할 수 있다고 믿습니다. 보결. 나는 이것을 알아낼 것입니다, 그러나 이것은 어쨌든 훨씬 더 읽기 쉽습니다. –