안녕하세요,
두 개의 데이터 테이블을 원본 열과 결합한 후 중복 항목을 선택(및 삭제)하려고 합니다. 선택 기준은 2가지입니다.
-중복 값 ~해야 한다 성냥 2열(Match :col1, :col2)에서 잘 작동합니다.
-중복 값 ~해야 한다 ~ 아니다 생성된 소스 열에서 동일한 값을 가집니다.
두 번째 기준을 어떻게 코딩할 수 있는지 잘 모르겠습니다. 간단한 != 라인이 있거나 ': 소스 테이블'과 '일치하지 않음'이 있습니까?
dt1 << concatenate (dt1, dt2, append to first table(1), Create Source Column ) ;
dt1 << Select Duplicate Rows (Match (:col1, :col2)) ;
dt1 << Delete Rows();
다른 접근이 필요하다고 생각합니다.제출된 JSL에는 몇 가지 문제가 있으며 Select Duplicate Rows 기능이 잘못 해석되었습니다.
연결 문은 데이터 테이블 dt1이 출력 테이블에서 두 번 복제되는 새 데이터 테이블을 생성합니다.
중복 행 선택 기능은 동일한 열 내에서 중복 항목만 찾습니다.
2개의 데이터 테이블 사이에서 중복 값이 있는 행을 결정하는 기능이 있는 조인 플랫폼을 사용하는 것이 좋습니다.
다음은 2개의 데이터 테이블을 비교하고 Robert라는 사람이 두 테이블 모두에 있음을 찾는 예입니다.

Names Default To Here( 1 );
dt1 = New Table( "one",
Add Rows( 20 ),
New Column( "name",
Character,
"Nominal",
Set Values(
{"KATIE", "LOUISE", "JANE", "JACLYN", "LILLIE", "TIM", "JAMES", "ROBERT", "BARBARA", "ALICE",
"SUSAN", "JOHN", "JOE", "MICHAEL", "DAVID", "JUDY", "ELIZABETH", "LESLIE", "CAROL", "PATTY"}
)
)
);
dt2 = New Table( "Two",
Add Rows( 20 ),
New Column( "name",
Character,
"Nominal",
Set Values(
{"FREDERICK", "ALFRED", "HENRY", "LEWIS", "EDWARD", "CHRIS", "JEFFREY", "MARY", "AMY", "ROBERT",
"WILLIAM", "CLAY", "MARK", "DANNY", "MARTHA", "MARION", "PHILLIP", "LINDA", "KIRK", "LAWRENCE"}
)
)
);
dt3 = dt1 << Join(
With( dt2 ),
Merge Same Name Columns,
By Matching Columns( :name = :name ),
Drop multiples( 1, 0 ),
Include Nonmatches( 1, 1 ),
Preserve main table order( 1 ),
Output Table( "together" )
);
dt3 << select where( :Match Flag == 3 );
//dt3 << Delete Rows();
//dt3 << delete columns(match flag);Jim에게 감사합니다. 잘 작동합니다!
Join 기능에 대해 자세히 알게 되어 기쁩니다.
문안 인사,
스테인