안녕,
세 개의 테이블이 있으므로 dt_A, dt_B 및 dt_C라고 부를 수 있습니다. 테이블 dt_A 및 dt_B의 데이터는 업로드되거나 dt_C에 연결됩니다.
dt_A 또는 dt_B의 데이터는 다른 사용자에 의해 dt_ C에 추가 될 수 있고 다른 시간에 생성 될 수 있기 때문입니다. 따라서 C에 여러 번 추가하는 것을 방지하기 위해 이미 존재하는지 먼저 확인하기로 결정했습니다. 내 생각은 간단했습니다.
date = dt_A : Name ( "측정 날짜") [i];
lot = dt_A : Lotname [i];
웨이퍼 = dt_A : WaferNumber [i];
칩 = dt_A : 위치 [i];
각 행 (
if (: Name ( "측정 날짜") == 날짜 & : Lotname == lot & : WaferNumber == 웨이퍼 & : Position == 칩, a = 1, a = 0);
);
// 값이 발견되면 a = 1
// 값을 찾을 수없는 경우 a = 0
그리고 여기에 제가 직면 한 문제가 있습니다. dt_A에서 많은 데이터를 생성했으며 그중 일부는 이미 dt_C에서 사용할 수 있습니다. 조건이 참이더라도 a = 1 , 결과는 a = 0 .
그러나 내가 실행할 때 :
dt_C << select where (: Name ( "measurement date") == date & : Lotname == lot & : WaferNumber == 웨이퍼 & : Position == chip);
dt_C의 행이 선택됩니다.
문제가 어디에 있는지 아이디어가 있습니까?
나는 몇 가지 해결 방법을 만들었고 선택 기능이 문제없이 작동하기 때문에 내 해결책은 간단했습니다.
dt_C << Select Where(
:Name( "measurement date" ) == date:Lotname == lot & :WaferNumber == wafer & :Position == chip
);
If( N Rows( dt_C << get selected rows ) > 0,
a = 1,
a = 0
);
이 경우 프로그램은 항상 올바른 "a"값을 반환합니다. 데이터를 연결하거나 업데이트하는 추가 개념은 문제없이 작동합니다.:)