Puede usarse la siguiente técnica:
// --------------------------------------------------------------------
// PASO 1. Carga datos de ejemplo
Transacciones:
LOAD * INLINE [
Id_Transaccion, Valor, _Flag_ErrorTipo_1, _Flag_ErrorTipo_2, _Flag_ErrorTipo_3
1, 290, 0, 1, 1
2, 567, 0, 1, 0
3, 342, 0, 1, 0
4, 968, 1, 0, 1
Transacciones:
LOAD * INLINE [
Id_Transaccion, Valor, _Flag_ErrorTipo_1, _Flag_ErrorTipo_2, _Flag_ErrorTipo_3
1, 290, 0, 1, 1
2, 567, 0, 1, 0
3, 342, 0, 1, 0
4, 968, 1, 0, 1
5, 542, 0, 1, 0
6, 149, 1, 1, 1
7, 370, 0, 0, 1
8, 597, 0, 1, 1
9, 565, 1, 0, 0
10, 315, 0, 1, 1];
// --------------------------------------------------------------------
// PASO 2. Crea la tabla Campos, la cual contiene sólo una columna
// con todos los campos que empiezan con "_Flag"
Let CantCampos=NoOfFields('Transacciones');
FOR i=0 to CantCampos
NombreCampo=FieldName(i,'Transacciones');
Campos:
LOAD '$(NombreCampo)' as TODOSLOSCAMPOS AutoGenerate 1
Where WildMatch('$(NombreCampo)','_*');
NEXT;
// --------------------------------------------------------------------
// PASO 3. Crea la tabla CampoFinal, con un unico valor que contiene el string:
// "_Flag_ErrorTipo_1, _Flag_ErrorTipo_2, _Flag_ErrorTipo_3"
CampoFinal:
LOAD Concat(TODOSLOSCAMPOS,', ') AS FINAL Resident Campos;
let CamposFLAG=Peek('FINAL');
// --------------------------------------------------------------------
// PASO 4. Carga unicamente los campos que empiezan con "_Flag"
Transacciones_Flags:
LOAD $(CamposFLAG) Resident Transacciones;
DROP Table Transacciones,Campos,CampoFinal;
No hay comentarios:
Publicar un comentario