Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
fonmarcelo
New Contributor III

Dúvida de script - tabela histórica de datas

Olá!

Preciso realizar uma transformação de dados mas ainda não encontrei uma forma de fazer isso.

Seria possível transformar a tabela abaixo...

Nome EventoInicioFim
Evento A01/09/201602/09/2016
Evento B05/09/201608/09/2016
Evento C28/09/201628/09/2016

...no seguinte resultado desejado (QVD):

EventoData
Evento A01/09/2016
Evento A02/09/2016
Evento B05/09/2016
Evento B06/09/2016
Evento B07/09/2016
Evento B08/09/2016
Evento C28/09/2016

Ou seja, se um evento vai de 01/09/2016 (início) a 02/09/2016 (fim), criar "duas linhas" com as informações do evento, considerando a Data de Início e Fim.

Vocês tem algumas dicas?

1 Solution

Accepted Solutions
maiconmello
Contributor III

Re: Dúvida de script - tabela histórica de datas

Boa tarde Marcelo,

Acho que isso resolve.

tmp:

LOAD * INLINE [

    Evento, ini, fim

    A, 01/09/2016, 02/09/2016

    B,05/09/2016,08/09/2016

    c,28/09/2016,28/09/2016

];

nova:

NoConcatenate

load Evento,ini,fim, ini+(IterNo()-1) as nova resident tmp While ini+(IterNo()-1) <= fim ;

drop table tmp;

Segue o modelo, criei a sua tabela em inline e fiz o que pediu.

6 Replies
fer_damas
Contributor

Re: Dúvida de script - tabela histórica de datas

Sua_Tabela:

Load

Nome_Evento as Evento,

Subfield (TempData, ',') as Data;

Load

Nome_Evento,

Inicio & ',' & Fim as TempData

From Sua_Tabela;

Mais informações:

https://help.qlik.com/pt-BR/qlikview/12.0/Subsystems/Client/Content/Scripting/StringFunctions/SubFie...

fabionakashigue
Contributor

Re: Dúvida de script - tabela histórica de datas

A forma mais simples é você fazer um concatenate dessas 2 tabelas.

Ex:

Fato:

Load [Nome Evento],

Inicio      As Data

From ....

Concatenate (Fato)

Load [Nome Evento],

Fim As Data

From ....

fonmarcelo
New Contributor III

Re: Dúvida de script - tabela histórica de datas

Eu preciso que os intervalos entre os eventos também estejam em "linhas", com o concatenate puro eu não tenho esse resultado.

fonmarcelo
New Contributor III

Re: Dúvida de script - tabela histórica de datas

Obrigado pela resposta, mas eu preciso que os intervalos entre os eventos também estejam preenchidos nas "linhas".

maiconmello
Contributor III

Re: Dúvida de script - tabela histórica de datas

Boa tarde Marcelo,

Acho que isso resolve.

tmp:

LOAD * INLINE [

    Evento, ini, fim

    A, 01/09/2016, 02/09/2016

    B,05/09/2016,08/09/2016

    c,28/09/2016,28/09/2016

];

nova:

NoConcatenate

load Evento,ini,fim, ini+(IterNo()-1) as nova resident tmp While ini+(IterNo()-1) <= fim ;

drop table tmp;

Segue o modelo, criei a sua tabela em inline e fiz o que pediu.

fonmarcelo
New Contributor III

Re: Dúvida de script - tabela histórica de datas

Obrigado Maicon, era isso mesmo!