terça-feira, 20 de maio de 2014

Qualify e Unqualify

Qualify
No Qlikview existe uma junção automática para os campos com o mesmo nome em tabelas diferentes, esta junção pode ser suspensa usando o comando qualify, que qualifica o nome do campo com seu nome de tabela. Se for(em) qualificado(s), o(s) nome(s) de campo será(ão) renomeado(s) quando encontrado(s) em uma tabela. O novo nome terá o formato nomedatabela.nomedocampo. Nomedatabela equivale ao rótulo da tabela atual ou, se não existir um rótulo, o nome que aparece depois de from nos comandos load e select. A qualificação é sempre desativada, por padrão, no início da execução do script. A qualificação do nome de um campo pode ser ativada a qualquer momento usando um comando qualify. A qualificação pode ser desativada a qualquer momento usando um comando Unqualify. Após a utilização do comando qualify com aplicação de caracteres curinga ele será aplicado em todos os comandos loads subsequentes até a sua desativação utilizando o comando unqualify.

A sintaxe é:
qualify*listadecampos
*listadecampos é uma lista separada por vírgula dos campos para os quais a qualificação deve ser ativada. O uso de * como lista de campos indica todos os campos. Os caracteres curingas * e ? são permitidos nos nomes de campo. Poderá ser necessário colocar os nomes de campos entre aspas quando forem utilizados caracteres curinga.

Nota!
O comando qualify não deve ser usado em conjunto com uma recarga parcial!

Exemplos:
QUALIFY DESCRICAO;
:
LOAD * COD, DESCRICAO from PERGUNTA.xls;
LOAD * COD, DESCRICAO from CONTEXTO.xls;
Sem a utilização do comando qualify iriamos criar uma chave sintética de todos os campos entre as duas tabelas, mas ao aplicarmos o qualify as duas tabelas serão unidas apenas pelo campo COD. O resultado deste load serão três campos COD, PERGUNTA.DESCRICAO e CONTEXTO.DESCRICAO.
Em outro exemplo podemos utilizar os comandos qualify e unqualify de forma associada conforme exemplo:
QUALIFY *;
UNQUALIFY DESCRICAO;

LOAD * from TabelaA.xls;
LOAD * from TabelaB.xls;
LOAD * from TabelaC.xls;
LOAD * from TabelaD.xls;


Somente DESCRICAO será usado para associações entre as tabelas TabelaA, TabelaB, TabelaC e TabelaD.

Nenhum comentário:

Postar um comentário