IntervalMatch (Sintaxe Estendida)
O prefixo estendido IntervalMatch é usado para criar uma tabela comparando valores numéricos discretos com um ou mais intervalos numéricos, enquanto compara os valores de uma ou várias chaves adicionais.
Esse é um recurso bastante eficiente e flexível que pode ser usado na vinculação de transações a dimensões alteradas com o passar do tempo: Dimensões em mudança lenta.
O prefixo IntervalMatch deve ser colocado antes de um comando Load ou Select que carregue os intervalos. A tabela que contém os pontos de dados discretos e as chaves adicionais já deve ter sido carregada no QlikView antes do comando com o prefixo IntervalMatch. O prefixo transforma a tabela carregada de intervalos e chaves em uma tabela que contém uma coluna adicional: os pontos de dados numéricos discretos. Ele também expande o número de registros de forma que a nova tabela tenha um registro por combinação possível de ponto de dados discreto, intervalo e valor do(s) campo(s) chave.
A sintaxe é:
intervalmatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )
matchfield é o campo que contém os valores numéricos discretos a serem vinculados a intervalos.
keyfield(s) são campos que contêm os atributos adicionais a serem combinados na transformação.
loadstatement ou selectstatement devem resultar em uma tabela na qual os dois campos iniciais contêm os limites inferior e superior de cada intervalo, e o terceiro e os campos subsequentes contêm o(s) keyfield(s) presente(s) no comando IntervalMatch. Os intervalos estão sempre fechados, isto é, sempre contêm pontos de extremidade. Os limites não numéricos fazem com que o intervalo seja desconsiderado (indefinido).
Para evitar que limites de intervalo indefinidos sejam desconsiderados, você deve permitir que valores NULL sejam mapeados para outros campos que constituem o limite inferior ou superior no intervalo. Isso pode ser controlado pelo comando NullAsValue ou por um teste explícito que substitui NULLs por um valor numérico bem antes ou depois de qualquer um dos pontos de dados numéricos discretos.
Exemplo:
Inner Join IntervalMatch (Date,Key) LOAD FirstDate, LastDate, Key resident Key;