Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Load 'from_field' feature

Hello !

I'm confused about the newest Load 'from_field' on version 9.

Would someone else publish a mini QVW where we can see it in action, mostly explaining the concept ou reason underneath this new feature ?

On the other hand, many, many times I have a situation where I need to re-use a previously loaded field on a table,


USO:

LOAD
LEFT(@1,1) AS CAMPUS_TC
,LEFT(@1,5) AS NOME_TC
,MID(@1,7,10) AS DATA_TC
,MID(@1,18,8) AS HORA_TC
,MID(@1,18,2) AS HH_HORA_TC
,MID(@1,27,30) AS OPCAO_KEY
,MID(@1,27,30) AS OPCAO_TC
,MID(@1,27,30) & ' ' & LOOKUP('DESCRICAO','OPCAO_DESC',MID(@1,27,30),'DESCRICOES') AS DESCRICAO_TC
,RECNO() AS RECNO_TC
,IF(MID(@1,7,10) > MAKEDATE(2008,11,18) AND MID(@1,27,07)='TC06699',MID(@1,35,6),NULL()) AS CARTAO_DER_TC
,IF(MID(@1,7,10) > MAKEDATE(2008,11,18) AND MID(@1,27,07)='TC06699',MID(@1,42,1),NULL()) AS GRUPO_KEY
,IF(MID(@1,7,10) > MAKEDATE(2008,11,18) AND MID(@1,27,07)='TC06699',MID(@1,42,1) & '/' & MID(@1,35,6) ,NULL()) AS GRUPOCAR_DER_TC
RESIDENT TEST WHERE NOT EXISTS(OPCAO_IGNORAR,MID(@1,27,30));
[/CODE]
Take a look at the expression MID(@1,7,10) , It's repeated several times on the load statement.
I just wanna be able to re-use a previously loaded field on the SAME load statement. On the example I wanna re-use DATA_TC again later on the script, without having to re-aply the expression to have the field content again.
That's it !
Thanks for your help !
</body>
Labels (1)
1 Solution

Accepted Solutions
hector
Specialist
Specialist

Hi, if you want to "reuse" a calc field, put a load previous to the main load, something like this

USO:
Load
*,
IF(DATA_TC > MAKEDATE(2008,11,18) AND MID(@1,27,07)='TC06699',MID(@1,35,6),NULL()) AS CARTAO_DER_TC
;
LOAD
LEFT(@1,1) AS CAMPUS_TC ,
LEFT(@1,5) AS NOME_TC ,
MID(@1,7,10) AS DATA_TC ,
MID(@1,18,8) AS HORA_TC ,
MID(@1,18,2) AS HH_HORA_TC ,
MID(@1,27,30) AS OPCAO_KEY ,
MID(@1,27,30) AS OPCAO_TC ,
MID(@1,27,30) & ' ' & LOOKUP('DESCRICAO','OPCAO_DESC',MID(@1,27,30),'DESCRICOES') AS DESCRICAO_TC ,
RECNO() AS RECNO_TC ,
//IF(MID(@1,7,10) > MAKEDATE(2008,11,18) AND MID(@1,27,07)='TC06699',MID(@1,35,6),NULL()) AS CARTAO_DER_TC //this will be calculated in the previous load,
IF(MID(@1,7,10) > MAKEDATE(2008,11,18) AND MID(@1,27,07)='TC06699',MID(@1,42,1),NULL()) AS GRUPO_KEY ,
IF(MID(@1,7,10) > MAKEDATE(2008,11,18) AND MID(@1,27,07)='TC06699',MID(@1,42,1) & '/' & MID(@1,35,6) ,NULL()) AS GRUPOCAR_DER_TC
RESIDENT TEST WHERE NOT EXISTS(OPCAO_IGNORAR,MID(@1,27,30));

RGDS and good luck

View solution in original post

8 Replies
Miguel_Angel_Baeyens
Support
Support

Hello Adriano,

It seems that from_field may help you with that re-use of fields. "from_field" is used when the field and the table were in a previously loaded file. Take into account, and please correct me if I'm wrong, that once you have loaded and not dropped a table into memory, you can use their field names as often s you want, which means, i.e.: that if you now make a new tab, and you want to let's say concatenate DATA_TC with a new field, it would be as easy as

,NEW_FIELD & "$$" & DATA_TC AS MODIFIED_DATA_TC


I will upload in a few minutes one simple example of from_field clause.

Regards.

hector
Specialist
Specialist

Hi, if you want to "reuse" a calc field, put a load previous to the main load, something like this

USO:
Load
*,
IF(DATA_TC > MAKEDATE(2008,11,18) AND MID(@1,27,07)='TC06699',MID(@1,35,6),NULL()) AS CARTAO_DER_TC
;
LOAD
LEFT(@1,1) AS CAMPUS_TC ,
LEFT(@1,5) AS NOME_TC ,
MID(@1,7,10) AS DATA_TC ,
MID(@1,18,8) AS HORA_TC ,
MID(@1,18,2) AS HH_HORA_TC ,
MID(@1,27,30) AS OPCAO_KEY ,
MID(@1,27,30) AS OPCAO_TC ,
MID(@1,27,30) & ' ' & LOOKUP('DESCRICAO','OPCAO_DESC',MID(@1,27,30),'DESCRICOES') AS DESCRICAO_TC ,
RECNO() AS RECNO_TC ,
//IF(MID(@1,7,10) > MAKEDATE(2008,11,18) AND MID(@1,27,07)='TC06699',MID(@1,35,6),NULL()) AS CARTAO_DER_TC //this will be calculated in the previous load,
IF(MID(@1,7,10) > MAKEDATE(2008,11,18) AND MID(@1,27,07)='TC06699',MID(@1,42,1),NULL()) AS GRUPO_KEY ,
IF(MID(@1,7,10) > MAKEDATE(2008,11,18) AND MID(@1,27,07)='TC06699',MID(@1,42,1) & '/' & MID(@1,35,6) ,NULL()) AS GRUPOCAR_DER_TC
RESIDENT TEST WHERE NOT EXISTS(OPCAO_IGNORAR,MID(@1,27,30));

RGDS and good luck

Not applicable
Author

OK.

But, I want to re-use 'CARTAO_DER_TC' on the second part of the LOAD statement.

Guess I can not do that.

Check this simple example . I want to 're-use' the VALUE_DER_TEST field :


TEST:

LOAD
*
,IF(VALUE_TEST>100,'GORDO','MAGRO') AS VALUE_DER_TEST
;

LOAD
*
,IF(VALUE_DER_TEST='GORDO','GRANDE','PEQUENO') AS TAMANHO_DER_TEST
FROM C:\TEST\QV\TEST123.CSV (ANSI, TXT, DELIMITER IS ';', EMBEDDED LABELS, NO QUOTES);


It is not accepted...

hector
Specialist
Specialist

you have the sintax backwards

in the first load, you can read only fields from the second load, so in your case if VALUE_DER_TEST not exist in the

TEST123.CSV file, this will not work.

rgds,

PD. vc e brasileiro?

Miguel_Angel_Baeyens
Support
Support

Take a look at this example:

TestTable:
Directory;
LOAD units,
tens,
hundreds
FROM
table.csv
(txt, codepage is 1252, embedded labels, delimiter is ',', no quotes);

LetterTable:
Directory;
LOAD [upper],
[lower] & [upper] AS Combination//using a previously loaded field
FROM
table2.csv

(txt, codepage is 1252, embedded labels, delimiter is ',', no quotes);


On the other hand, I would recommend you to use inline or resident tables for those purposes.

Hope this helps!

Not applicable
Author

OK !

Now I understood !

Thank you !

PD:

Sim , sou brasileiro. Nascido em São Paulo mas atualmente moro e trabalho no interior do estado, em Piracicaba

(http://maps.google.com.br/maps?f=q&source=s_q&hl=en&geocode=&q=piracicaba&sll=-14.179186,-50.449219&sspn=112.084709,158.027344&ie=UTF8&hq=&hnear=Piracicaba+-+SP&z=11)

Trabalho na UNIMEP (Universidade Metodista de Piracicaba).

E vc ? Fala Português ? É de onde ?

Muito grato pela ajuda, embora o tópico original não tenha ainda sido respondido !

Abraço !


hector
Specialist
Specialist

Beleza!, eu sou do Chile, e eu falo um pouco portugues.

Abraço

Not applicable
Author

Ah sim, muito bom !

Um pouco que sei do Chile:

- Bastante desenvolvido

- Grande produtor de cobre

- No sul do país teve colonização alemâ

- Cidades têm estilo europeu

- Baixíssimo índice de criiminalidade

- Fez a privatização do seu sistema de Previdência

- Tem uma mulher como presidente !

- Tem crescido bastante, economia bem desenvolvida

- Clima frio, claro ! rs

É isso !

Grande abraço !