Hola, todos,
¿Es posible escribir una declaración de selección para una columna donde, si la columna no contiene un valor deseado, no hará nada, pero si la columna 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-Actualizar" y "4-Eliminar" que se encuentran entre mis datos transaccionales. Cuando la tabla se actualiza y sucede que hay un "4-Eliminar" en la columna, actualmente subconjunto los datos y luego los relaciono/actualizo de nuevo al 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 la primera instancia donde los datos se actualizaron y no contenían un 4-Eliminar. Esto hizo 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);
);