Inténtalo en el contexto de la transposiciónTengo un script que realiza una transposición de algunos datos obtenidos de una consulta SQL. Me gustaría agregarle cierta flexibilidad al script para que las columnas exactas en la consulta puedan variar. Mi script actual exige una serie de columnas que deben estar presentes para que funcione y me gustaría aplicar la funcionalidad Try() de alguna manera para acomodar la variación en la consulta SQL.
Hice un ejercicio con la transposición incluida en una declaración try pero falló.
Automatización y scriptingRe: Probar en contexto de Transposición¿Con qué parte tienes problemas? ¿La consulta SQL falla porque cambian los nombres de las columnas? ¿O el script JSL falla porque no obtiene las columnas que espera? ¿Qué debería suceder en caso de que haya un problema?
Re: Probar en contexto de TransposiciónSQL extrae los datos como se esperaba, pero es posible que el operador no incluya todas las columnas que JMP espera transponer. El problema se produce en el extremo de JMP, donde se nominan columnas explícitas, pero no aparecen.
El registro JMP indica
Columna no encontrada en el acceso o evaluación de 'columnas', argumento incorrecto ({:SAMPLE}).
Re: Probar en contexto de Transposición¿Y qué se debe hacer en ese caso? ¿Detener la ejecución del programa? ¿Omitir esa parte del script? ¿Intentar obtener las columnas correctas?
Re: Probar en contexto de TransposiciónSolo quiero ejecutar en las columnas que realmente aparecieron y no fallar debido a las que faltan. En última instancia, necesito un script que tenga cierta tolerancia para las diferencias en la consulta SQL, ya que muchos operadores necesitan usarlo y ocurren diferencias. Una ventaja que tengo es que la columna de transposición (:VALOR) y la columna de etiqueta (:PARÁMETRO) tienen títulos fijos. Investigué un poco sobre esto con algo de ayuda de la información que encontré aquí y en otros lugares, obtuve el script a continuación que parece funcionar.
Resuelto: eliminar elementos de una lista - Comunidad de usuarios de JMP
Gracias por la ayuda.
dt = Current Data Table();
// List available columns
by_col_names = dt << get column names( "String" );
show(by_col_names);
// Remove Transpose and Label columns from list
delcols = {"VALUE", "PARAMETER"};
For( i = 1, i <= N Items( delcols ), i++,
Remove From( by_col_names, As List( Loc(by_col_names, delcols[i] ) ) );
);
// Transpose only if valid columns exist
If (N Items(by_col_names) > 0,
dt2 = dt << Transpose(
Columns(:VALUE),
By(
by_col_names
),
Label( :PARAMETER ),
Output Table( "Transpose of dt_data" )
);
);