Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
paulinhok14
Creator
Creator

Modelagem de tabelas

Pessoal boa tarde!

Gostaria de uma sugestão de vocês!

Tenho uma tabela em Excel, que, para cada documento e para cada mês, tenho alguns registros de tarefas (separadas por <br>).

Existem por exemplo, várias tarefas para o mesmo mês em um determinado documento.

Qual seria a melhor maneira de modelar esses dados? Crio uma tabela para mês com a chave do documento e outra para tarefas? Uma de Documentos e tarefas apenas para se relacionar com o mês?

Preciso passar isso para um QlikView porém fiquei meio perdido nisso... Segue exemplo:

jao.png

Labels (2)
16 Replies
paulinhok14
Creator
Creator
Author

Mário, apliquei essa mudança e mesmo assim os meses que não tem relação não estão vindo, começa a registrar apenas a partir do 9 com alguns gaps.

À respeito das funções, li todos os artigos que me sugeriu, consegui entender todas, menos a função IterNo().

Pode me ajudar?

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Paulo, segue script com ajustes para aparecer os meses, mesmo sem dados:

Temp_Tabela:

CrossTable(Documento,Registros)

LOAD *

FROM docs_month.xlsx (ooxml, embedded labels, table is Planilha1)

;

Tabela:

Load

     Mês,

     Documento,

     SubField(Registros,'<br>',IterNo()) As 'Tarefa'

While IterNo() <= RangeMax([Qtd Reg.],1)

;

Load

     F1 As 'Mês',

     Documento,

     Registros,

     SubStringCount(Registros,'<br>') As 'Qtd Reg.'

Resident Temp_Tabela

Where Not Match(Registros,'Content') And Len(F1)>0 And Not Match(F1,'Month');

Drop Table Temp_Tabela;

Referente a função InterNo(), só é significativo quando utilizado juntamente com a cláusula While;

Para cada Loop (Ciclo do While), InterNo() retorna um número sequencial até completar a condição do While;

Ex.: While InterNo() <= 5, ou seja, o loop vai ser de 5 ciclos até encerrar.


Exemplo, rode e observe o resultado:


LOAD
   IterNo() As 'Dia',
   Date( StartDate + IterNo() - 1 ) As 'Data',

   StartDate,

   EndDate

While StartDate + IterNo() - 1 <= EndDate

;

LOAD * INLINE

[StartDate, EndDate

2017-02-10, 2017-02-15

2017-01-22, 2017-01-26

];

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Paulo, se querer simplificar o script, pode retirar o Len() da linha 20 acima;

De:

Where Not Match(Registros,'Content') And Len(F1)>0 And Not Match(F1,'Month'); 

Para:

Where Not Match(Registros,'Content') And Not Match(F1,'Month','');

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Pode utilizar * para processar várias planilhas ao mesmo tempo também;

Ex.: From dosc_*.xlsx

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
paulinhok14
Creator
Creator
Author

Show Mário!!!

Consegui aplicar para os outros modelos também utilizando este método do asterisco.

Muito obrigado pela sua atenção amigo!

Abraços!!

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Show;

Abraços amigo.

Sucesso.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti