PROC SQL;
CREATE TABLE TBL AS
SELECT A.*
FROM (
SELECT MEMNAME
FROM DICTIONARY.TABLES
WHERE LIBNAME = UPCASE("IR_ETL")
) AS A
, ORA.TAB AS B
WHERE A.MEMNAME = B.TNAME
;
QUIT;
DATA _NULL_;
SET TBL END=EOF NOBS=CNT;
CALL SYMPUT('MEMNAME'||LEFT(_N_), COMPRESS(MEMNAME));
IF EOF THEN CALL SYMPUT('CNT', COMPRESS(CNT));
RUN;
OPTION MPRINT;
%MACRO M1;
PROC SQL;
CREATE TABLE TBL_CHK AS
SELECT A.*
, CASE WHEN A.CNT_SAS ^= A.CNT_ORA THEN 'X' END AS CHK
FROM (
%DO I = 1 %TO &CNT;
%IF &I ^= 1 %THEN %DO;
UNION ALL
%END;
SELECT MEMNAME
, (SELECT COUNT(*) FROM IR_ETL.&&MEMNAME&I ) AS CNT_SAS
, (SELECT COUNT(*) FROM ORA_SVOC.&&MEMNAME&I ) AS CNT_ORA
FROM TBL
WHERE MEMNAME = "&&MEMNAME&I"
%END;
) AS A
;
QUIT;
%MEND;
%M1;
'전산Tip > SAS' 카테고리의 다른 글
[SAS] hash를 이용한 row 병합 (0) | 2011.02.21 |
---|---|
[SAS] SAS options mprint (0) | 2011.01.11 |
[SAS] proc sql create table에 label 넣기 (0) | 2010.09.14 |