안녕하세요 여러분,
다른 테이블에서 선택한 행의 항목을 기반으로 행을 선택하고 싶습니다. 코드 조각 아래. 마지막 행은 유효하지 않지만 의미하는 바를 명확히 해야 합니다.
selected_row_idx = DT << Get Selected Rows;
measurement_starts = DT:MeasurementStart[selected_row_idx];
measurement_ends = DT:MeasurementEnd[selected_row_idx];
DTmeas << Select Where(measurement_starts[1] <= :TimeStamp <= measurement_ends[1] & measurement_starts[2] <= :TimeStamp <= measurement_ends[2] & ... & measurement_starts[n] <= :TimeStamp <= measurement_ends[n]);
테이블 DT에서 선택한 행 수만큼 "&"로 연결된 조건을 갖도록 마지막 행을 동적으로 작성하려면 어떻게 해야 합니까? 루프를 작성하고 하위 집합을 반복적으로 필터링할 수 있지만 이는 다소 형편없는 작업입니다. 아니면 마지막 행을 문자열로 모아서 구문 분석하고 실행할 수도 있지만 그것도 좋지 않습니다. 이를 수행하는 우아한 방법이 있습니까?
행렬, SQL, 표현식 작성 등을 사용할 수 있을 것 같습니다.
Names Default To Here(1);
dt1 = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("A", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 5])),
New Column("B", Numeric, "Continuous", Format("Best", 12), Set Values([2, 3, 6]))
);
dt1 << Select Rows(1::3);
starts = dt1[dt1 << get selected rows, {"A"}];
ends = dt1[dt1 << get selected rows, {"B"}];
dt1 << clear select;
dt2 = New Table("Untitled 2",
Add Rows(5),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 5]))
);
dt2 << Select Where(
N Items(Loc((starts <= :Column 1)` + (ends >= :Column 1)` >= 2)) > 0
)