Skip to main content
Announcements
NEW Customer Portal: Initial launch will improve how you submit Support Cases. FIND OUT MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
FNOYAMARTINEZ
Explorer
Explorer

SQL

HOLA, BUEN DIA, SOY UN POCO NUEVO EN QLIK Y HASTA AHORA ME HA GUSTADO MUCHO...

TENGO UNA INQUIETUD, ALGUIEN ME PUEDE AYUDAR...

TENGO UNA CONSULTA SQL, QUE ME GENERA UNA TABLA EN QVD CON UNA SERIE DE CONSULTA DEPENDIENDO DE VARIOS CARACTERES...

Y LO QUE QUIERO ES PODER EJECUTAR EN SQL NUEVAMENTE ESE RESULTADO DE LA PRIMERA CONSULTA... PARA ASI NO TENER QUE ESTAR COPIANDO EL RESULTADO Y PEGANDOLO EN LA CONSOLA DE CARGUE DE DATOS...

ES ALGO ASI,

PRIMER PASO: UNA CONSULTA SQL, GENERA UN QVD CON VARIAS FILAS QUE SON CONSULTAS(SELECT) DIFERENTES...

SEGUNDO PASO: EJECUTAR EN SQL CADA UNA DE ESAS CONSULTAS DE CADA FILA EN EL QVD...

TERCER PASO; GENERAR UN QVD CON EL RESULTADO DE TODAS ESAS CONSULTAS...

HE ESTADO BUSCANDO ALGUNA FORMA DE EJECUTAR EN SQL UN SCRIPT GUARDADO EN TXT... ASI EL RESULTADO DE LA PRIMERA CONSULTA LO GUARDO EN TXT Y LUEGO EN EL SEGUNDO PASO DECIRLE A QLIK QUE ME EJECUTE EN SQL ESE TXT... PERO NO HE ENCONTRADO LA FORMA...

QUIEN PUEDA AYUDARME, LE AGRADECERIA...

Labels (1)
  • SQL

1 Reply
rubenmarin

Buenos días, a ver si puedes guierate usando este ejemplo:

Por ejemplo, generando el qvd con los selects así:

// ** Generar qvd con selects **
SQL:
LOAD * Inline [
SQLSelect
Select Field1, Field2 From Table;
SSelect Field1, Field2 From Table2;
];

STORE SQL into SQL.qvd (qvd);
DROP Table SQL;

 

Se podrían juntar todos los selects en una tabla usando:

// ** Carga qvd y ejecutar selects **
tmpSQL:
LOAD * From SQL.qvd (qvd);

// Inicializar tabla para añadir datos (se crea una campo que posteriormente se eliminará)
TablaFinal: NoConcatenate LOAD * Inline [tmpCampoVacio]; 

// Bucle para recorrer las filas del qvd con las selects
FOR i=0 to NoOfRows('tmpSQL')-1
	LET vSQL = Peek('SQLSelect', $(i), 'tmpSQL'); //Almacena el contenido de la select en una variable
	
	Concatenate(TablaFinal) // Añadir datos de la select a TablaFinal
	LOAD *;
	$(vSQL); //Ejecuta la select, lo marcará como error pero si la select almacenada es correcta funcionará
NEXT

// Eliminar temporales
DROP Field tmpCampoVacio;
DROP Table tmpSQL;

 

Saludos.