Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
rbarbosa
Contributor III
Contributor III

Chave contida em um intervalo

Bom dia Senhores, estou modelando uma aplicação que tem com funcionalidade apresentar uma tabela onde uma das colunas é o valor de reajuste realizados no contratos, porém com isso surgiu uma dificuldade, são muitos contratos e o sistema cadastra esses reajustes em intervalos, por exemplo:

Rejuste - 1

Contrato Inicial - A

Contrato Final - J

Com isso não consegui imaginar uma maneira de relacionar a chave de contratos com a chave de reajustes, buscar no intervalo sabe ?

Alguém já fez algo parecido ?

Rodolfo Barbosa
Labels (3)
1 Solution

Accepted Solutions
nicolett_yuri

Rodolfo, da uma pesquisada na função IntervalMatch, ele trabalha com o JOIN dentro de intervalos.

Exemplo de código do IntervalMatch

Grade:
LOAD * INLINE [
Min,Max,Grade
0,34,E
35,40,D
40,60,C
60,80,B
80,100,A
];
Notas:
LOAD * INLINE [
Nota,Aluno
30,Yuri
50,Edson
99,Alan
10,Geraldo
93,Henrique
];
LEFT JOIN
IntervalMatch(Nota)
LOAD
Min, //Primeiro o menor
Max  //depois o maior
RESIDENT Grade;

View solution in original post

3 Replies
nicolett_yuri

Rodolfo, da uma pesquisada na função IntervalMatch, ele trabalha com o JOIN dentro de intervalos.

Exemplo de código do IntervalMatch

Grade:
LOAD * INLINE [
Min,Max,Grade
0,34,E
35,40,D
40,60,C
60,80,B
80,100,A
];
Notas:
LOAD * INLINE [
Nota,Aluno
30,Yuri
50,Edson
99,Alan
10,Geraldo
93,Henrique
];
LEFT JOIN
IntervalMatch(Nota)
LOAD
Min, //Primeiro o menor
Max  //depois o maior
RESIDENT Grade;
rbarbosa
Contributor III
Contributor III
Author

Boa tarde Yuri, consegui chegar em um resultado muito próximo do que preciso:

O script com base no seu ficou assim:

Reajuste:

LOAD NRREAJUSTE,

    NRCONTRATO_INI,

    NRCONTRATO_FIM,

    NRPERIODO_VENCTO_REAJUSTE,

    NRPERIODO_VIGENCIA_REAJUSTE,

    NRPERIODO_PROXIMO_REAJUSTE,

    CDSITUACAO_REAJUSTE,

    VLINDICE_MENSALIDADE,

    VLINDICE_INSCRICAO  

FROM

[...\REAJUSTE.qvd]

(qvd);

//O QVD Carregado abaixo trás uma relação entre o reajuste mais recente e o contrato referente a ele.

Contratos:

LOAD NRREAJUSTE,

    NRCONTRATO

FROM

[...\\REAJUSTE_CONTRATO.qvd]

(qvd);

LEFT JOIN

IntervalMatch(NRCONTRATO)

LOAD

    NRCONTRATO_INI, //Primeiro o menor - No meu caso contrato inicial

    NRCONTRATO_FIM  //depois o maior  -No meu caso contrato final

RESIDENT Reajuste;

Porém parece que ele pula uma linha, ou deixa um relacionamento vazio para cada contrato

print qlik brasil.jpg

Rodolfo Barbosa
nicolett_yuri

Rodolfo, a primeira tabela que você carregar coloca somente as colunas: NRREAJUSTE, NRCONTRATO_INI e NRCONTRATO_FIM. Dessa forma:

Reajuste:

LOAD

    DISTINCT

    NRREAJUSTE,

    NRCONTRATO_INI,

    NRCONTRATO_FIM

FROM

[\\10.0.8.35\PLanner\Aplicações\QVD\Transformação\Analise Comercial\REAJUSTE.qvd]

(qvd);