14 de enero de 2015

Cargar solo campos con prefijo especifico

Si se quieren cargar únicamente los campos que empiezan con el prefijo "_Flag", teniendo algo como:










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
            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: