Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Campos de datas em múltiplas tabelas

Tudo bem?

Tenho três tabelas para carregar no Qlik Sense e poder fazer gráficos tendo como dimensão um campo com Datas.

Cada tabela tem um campo de data com estatísticas de três itens cada. As datas estão no formato YYYY-MM. Mas no arquivo original Excel elas estão na linha de nome dos campos. Ou seja, para criar o campo de data, na hora que vou carregar as tabelas, eu aplico a opção de Girar para que as datas fiquem em apenas uma coluna.

Assim, eu carrego as três tabelas separadamente e giro cada uma para criar uma coluna de datas em cada.

As três tabelas podem ser associadas por um campo com um código. Acontece que eu gostaria de fazer gráficos onde a dimensão fosse a Data. Entretanto, se faço o gráfico e escolho a dimensão de data de uma das tabelas, então as datas das outras tabelas são ignoradas e o gráfico não funciona como eu gostaria.

A questão é, como eu posso fazer gráficos com dimensão de data que possa mostrar dados de duas ou três tabelas simultaneamente?

6 Replies
Thiago_Justen_

Sergio,

Partindo do suposto que você não tenha problema em usar o crosstable, considerando assim que suas tabelas já estejam com as datas em colunas, podes usar o conceito que apliquei no app em anexo. A ideia é usar o Canonical Canlendar.

Funciona bem para o que você precisa.

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Anonymous
Not applicable
Author

Meus dados são carregados de arquivos Excel.

O que você está sugerindo é que eu altere o script de carregamento de dados e insira esse script que você disponibilizou?  (precisa ser editado, correto?)

Thiago_Justen_

O app enviado apenas "orienta" a execução do canonical calendar. Mas sua fonte de dados pode continuar a mesma. Veja como ficaria seu caso, por exemplo:

// Aqui você carrega as suas três tabelas. As que contém as datas e as concatena.

TABELA_A:

LOAD

     SEUS_CAMPOS,

     DATA_A

FROM SEU_EXCEL_A;

Concatenate

LOAD

     SEUS_CAMPOS,

     DATA_B

FROM SEU_EXCEL_B;


Concatenate

LOAD

     SEUS_CAMPOS,

     DATA_C

FROM SEU_EXCEL_C;

// Aqui carrego todos os campos concatenados e crio uma chave que será usada para lincar com a tabela de calendário

TABELA_FINAL:

LOAD Distinct

Autonumber(DATA_A&DATA_B&DATA_C) AS ID_CALENDARIO,

    *

RESIDENT TABELA_A;

DROP TABLE TABELA_A;

DATA_PONTE:

LOAD

     ID_CALENDARIO,

    DATA_A AS CanonicalDate,

    'CAMPO_A' AS DateType

RESIDENT TABELA_FINAL;

LOAD

     ID_CALENDARIO,

    DATA_B AS CanonicalDate,

    'CAMPO_B' AS DateType

RESIDENT TABELA_FINAL;

LOAD

ID_CALENDARIO,

    DATA_C AS CanonicalDate,

    'CAMPO_C' AS DateType

RESIDENT TABELA_FINAL;

   

CANONICAL_CALENDAR:

LOAD

     CanonicalDate,

    year(CanonicalDate) AS CanonicalAno,

    month(CanonicalDate) AS CanonicalMes

RESIDENT DATA_PONTE;

Substitua no script acima usando as informações de sua base (nomes de tabelas e campos, por exemplo). Qualquer dificuldade me avise que tento te ajudar.

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Anonymous
Not applicable
Author

Uma informação que talvez não tenha dito antes:

Tenho 3 tabelas, A, B e C. no caso, eu concatenei as tabelas B e C, mas a tabela A eu prefiro deixá-la separada, pois não tem muito a ver com a B e a C. As três tabelas se comunicam apenas por um campo código e cada uma tem uma tabela de datas.

Nesse caso que você explicou, faço do mesmo jeito, exceto que não concateno a primeira vez, correto?

Vou tentar aqui e depois posto resultados.

Obrigado pelas informações valiosas!

EDIT: Não consegui editar o script de forma que a tabela A não seja concatenadas com as tabelas B e C. Pois não sei como seria criada a chave ID_CALENDARIO nesse caso. Você sabe como poderia ser feito?

nicolett_yuri

Sergio, a maneira mais simples seria concatenar as suas três tabelas, mesmo que os assuntos não sejam os mesmos.

Crie um campo de flag, para cada tabela, que identifique a sua origem.

Anonymous
Not applicable
Author

Eu até tentei concatenar as três tabelas pelo gerenciador do próprio Qlik Sense. Mas não funcionou, houve um erro.

Acredito que deva haver um bug nele, pois ao concatenar a terceira tabelas às outras duas (já concatenadas), o Qlik Apresenta um erro no editor de scripts (que é gerado automaticamente).

O gerador automático de scripts tá causando um bug, ele cria umas tabelas intermediárias e depois dá um erro dizendo que uma tabelas não foi encontrada. Só pode ser um bug, pois não editei nenhum script, apenas usei a opção de concatenar do gerenciador de dados do Qlik Sense. Não poderia dar esse erro.