IntervalMatch
A cláusula IntervalMatch, aplicada a um comando Load ou Select (SQL) é utilizado para associar valores numéricos distintos
a um ou mais intervalos numéricos
A sintaxe geral é:
Load|Select tabela1;
Load|Select tabela2;
intervalmatch (campo)(Load | Select)
Onde campo contém os valores numéricos distintos a
serem associados aos intervalos.
load ou select retorna uma tabela de duas colunas, na qual o
primeiro campo traz o limite inferior de cada intervalo e o segundo campo traz
o limite superior de cada intervalo.
Os intervalos devem estar
sempre fechados, isto é, sempre conter pontos de extremidade. Para os limites não-numéricos
o intervalo será
desconsiderado (indefinido), enquanto os limites com valor NULL fazem com que o
intervalo seja infinito (ilimitado).
Quando o comando IntervalMatch for executado o campo que contém os pontos de
dados distintos e os intervalos já devem ter sido lidos no Qlikview. Uma vez que o comando IntervalMatch, não lê esses campos a partir da tabela da base
de dados por se tratar de uma cláusula .dos comandos Load | Select.
Caso os intervalos estejam
sobrepostos os valores distintos serão associados a todos os intervalos correspondentes.
Exemplo:
Examine as duas tabelas abaixo. A primeira exibe
as datas de
início e término da aplicação de percentuais de participação diferentes. A
segunda, lista vários percentuais distintos. Por meio da função IntervalMatch, associaremos as duas tabelas logicamente para
saber, por exemplo, quais percentuais de participação foram aplicados em um
determinado período de tempo.
Participacao
DataInicio DataFim %Participacao
01/01/2010 31/12/2010 0,35
01/01/2011 31/12/2011 0,15
01/01/2012 31/12/2012 0,20
01/01/2013 31/12/2013 0,48
01/01/2014 31/12/2014 0,53
Histórico
Data Descricao Valor
05/01/2010 Venda
de Produtos 5.670,00
25/11/2010 Mão-de_obra
6.213,00
07/10/2011 Venda
de Produtos 5.885,00
25/11/2011 Mão-de_obra
6.428,00
05/01/2012 Venda
de Produtos 6.100,00
19/02/2012 Mão-de_obra
6.643,00
23/06/2013 Venda
de Produtos 6.315,00
29/08/2013 Mão-de_obra
6.858,00
04/01/2014 Venda
de Produtos 6.530,00
24/11/2014 Mão-de_obra
7.073,00
Primeiro, carregue as duas tabelas da forma
habitual e, em seguida, associe o campo Data aos intervalos definidos pelos campos DataInício e DataTérmino:
Participacao:
LOAD DataInicio,DataFim,%Participacao Inline [
DataInicio|DataFim|%Participacao
01/01/2010|31/12/2010|0,35
01/01/2011|31/12/2011|0,15
01/01/2012|31/12/2012|0,20
01/01/2013|31/12/2013|0,48
01/01/2014|31/06/2014|0,53
](delimiter is '|') ;
Eventos:
Load * Inline [
Data,Descrição,Valor
05/01/2010,Venda
de Produtos, 5.670,00
25/11/2010,Mão-de_obra,
6.213,00
07/10/2011,Venda
de Produtos, 5.885,00
25/11/2011,Mão-de_obra,
6.428,00
05/01/2012,Venda
de Produtos, 6.100,00
19/02/2012,Mão-de_obra,
6.643,00
23/06/2013,Venda
de Produtos, 6.315,00
29/08/2013,Mão-de_obra,
6.858,00
04/01/2014,Venda
de Produtos, 6.530,00
24/11/2014,Mão-de_obra,
7.073,00
];
IntervalMatchtab:
IntervalMatch(Data) LOAD DataInicio, DataFim Resident Participacao;
Agora, tabela a seguir pode ser criada no Qlikview: