Hola a todos,
Me gustaría seleccionar filas en función de las entradas de las filas seleccionadas de otra tabla. Debajo de un fragmento de código. La última fila no es válida, pero debería aclarar lo que quiero decir.
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]);
¿Cómo puedo escribir la última fila de alguna manera dinámica, de modo que tenga tantas condiciones conectadas con "&" como filas seleccionadas en la tabla DT? Podría escribir un bucle y filtrar subconjuntos de forma iterativa, pero esto es un poco aburrido. O podría juntar la última fila como una cadena y analizarla y ejecutarla, pero eso tampoco es bueno. ¿Existe una manera elegante de hacer esto?
Creo que podrías usar matrices, sql, expresión de construcción,...
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
)