Hola a todos,
¿Es posible escribir una declaración de selección para una columna donde, si la columna no contiene el valor deseado, no hará nada, pero si la columna sí contiene el valor que estoy buscando, puedo hacer que realice secuencias de comandos adicionales?
Tengo una columna Código de notificación que contiene 3 valores "1-Adición", "3-Actualización" y "4-Eliminación" que se encuentran entre mis datos transaccionales. Cuando la tabla se actualiza y resulta que hay un "4-Eliminar" en la columna, actualmente subconjunto los datos y luego los cotejo/actualizo nuevamente con el archivo original para determinar la primera instancia (es decir, la adición o actualización) y elimine ambos registros de la transacción de la tabla. Hoy es el primer caso en el que los datos se actualizaron y no contenían un 4-Delete. Esto provocó que mi declaración de selección y eliminación eliminara todos los registros de la tabla. Ejemplo de JSL actual para Seleccionar y Eliminar a continuación:
rowchoice = dt3 << Get Rows Where (:Notification Code == "4-Delete");
dt3 << Select Rows (rowchoice);
subdt1 = dt3 << Subset(
Link to Original Data Table (0),
Rows(),
Output Table Name ("Deletions")
);
subdt1.2 = Current Data Table ();
subdt1.2 << Delete Column (:N Rows);
subdt1.2 << New Column ("Deletions", Numeric, Continous,
<< set each value(1)
);
dt3 << Update (
With (Data Table ("Deletions")),
Match Columns (:ROL Case # == :ROL Case #, :"Card/Account Number" == :"Card/Account Number"),
Selected (:Deletions)
);
Close(subdt1.2, No Save);
rowchoice = dt3 << get rows where (:Deletions == 1);
dt3 << Select Rows(rowchoice);
dt3 << Delete Rows (rowchoice);
dt3 << Delete Column (:Deletions);
Cualquier ayuda es muy apreciada.
¡Eso funcionó muy bien! ¡Gracias por la ayuda!
Por lo que puedo decir, lo siguiente funcionará
rowchoice = dt3 << Get Rows Where (:Notification Code == "4-Delete");
If( N Rows( rowchoice ) > 0,
dt3 << Select Rows (rowchoice);
subdt1 = dt3 << Subset(
Link to Original Data Table (0),
Rows(),
Output Table Name ("Deletions")
);
subdt1.2 = Current Data Table ();
subdt1.2 << Delete Column (:N Rows);
subdt1.2 << New Column ("Deletions", Numeric, Continous,
<< set each value(1)
);
dt3 << Update (
With (Data Table ("Deletions")),
Match Columns (:ROL Case # == :ROL Case #, :"Card/Account Number" == :"Card/Account Number"),
Selected (:Deletions)
);
Close(subdt1.2, No Save);
rowchoice = dt3 << get rows where (:Deletions == 1);
dt3 << Select Rows(rowchoice);
dt3 << Delete Rows (rowchoice);
dt3 << Delete Column (:Deletions);
);