Hola,
Tengo el siguiente problema:
a) Estoy generando una tabla (llámela tabla dt) con varias columnas. Sin embargo, estoy interesado en mirar solo un patrón específico (por ejemplo, "ABC@XYZ") en los nombres de las columnas junto con otras dos columnas (por ejemplo, "LCOL", "WCOL"). Estoy generando esa tabla. (Llamando a esa tabla dtB)
Próximo
b) Utilizo la tabla dtB, extraigo su columna y uso un bucle for para generar una tabla de resumen para cada columna que coincida con el patrón en Col Name.
c) He creado una lista de tablas vacía, dt_sum_all
d) Ahora mi objetivo es obtener todos los valores resumidos de las columnas que coinciden con el patrón en una tabla junto con las columnas LCOL y WCOL. (Obtengo N tablas para N columnas de este tipo, si no uso la nueva tabla, pero eso no es lo que quiero; quiero 1 tabla )
e) También al final, una vez que tengo una sola tabla, quiero cambiar el nombre de las columnas (generalmente agrega SUM al principio de cada columna), como SUM ( ABC@XYZ_1AS ) a ABC@XYZ_1AS . Como tengo muchas columnas, quiero hacerlo en un bucle o similar.
Lo que tengo hasta ahora es lo siguiente:
dt = currentdatatable();
Wait(1);
colsd = dt << get column names( string );
pattern = "ABC@XYZ";
nd = N Items( colsd );
selCols = {"LCOL", "WCOL"};
For( i = 1, i <= nd, i++,
If( Contains( colsd[i], pattern ),
Insert Into( selCols, colsd[i] )
)
);
dtB = dt << Subset(
All rows,
Columns(selCols)
);
colNameList= dtB << get column names( string );
Wait(1);
dt_sum_all = {};
For( i = 1, i <= N Items( colNameList ), i++,
If( Contains( colNameList[i], pattern),
dt_sum = dtB << Summary(
Group( :LCOL, :WCOL ),
Sum(colNameList[i]),
Freq( "None" ),
Weight( "None" ),
) << show window(0);
);
Insert Into(dt_sum_all, dt_sum);
//Data Table (dt_sum_all) << Update (
///With(Data Table(dt_sum)),
//Match Columns(:LCOL = :LCOL, :WCOL=:WCOL)
);
////column(dt_sum, "SUM("||colNameList[i] || ")" ) << set name(colNameList[i]);
///);El código anterior no funciona y obtengo varias tablas para cada columna, en lugar de una fusionada/actualizada. Entonces no conseguir una mesa. Alguien puede ayudarme porfavor. Gracias.