Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Possuo os Campos NR_PROCESSO e NR_GUIA, em 3 tabelas distintas, preciso criar um LinkTable para eles e também para os campos data que o painel possui, porém ao criar o linktable como foi sugerido por aqui e retirar estes campos-chave nas tabelas de origem acabo perdendo a modelagem dos dados. Eu preciso fazer a modelagem dimensional para este painel mas não estou conseguindo. QVW em anexo.
Vamos la
Sim Esta correto voce tirar das tabelas originais, porem o que tu vai fazer e :
1 - Criar uma chave composta com os campos que sao comum e devems er relacionados por exemplo:
NR_PROCESSO & '|' NR_GUIA as %KeyProcessoGuia ou %KeyLinktable,
NR_PROCESSO ,
NR_GUIA
Campo_de_Data as Data
Em todos as tabelas depois tu vai fazer isso :
Linktable:
NoConcatenate
Load
%KeyProcessoGuia ou %KeyLinktable,
NR_PROCESSO ,
NR_GUIA
Data
From Table_A
drop Fields NR_PROCESSO , NR_GUIA, Data From Tabela_A
Voce faz isso em todas as tabela e fica tudo na Linktable.
Porque :
A Link table fica todas todos os relacionamentos, tanto de dimensao , quanto para as fatos, ele tem que achar as informacoes dentro da tabela fato porque o relacionamento do Processo + Guia vai gerar uma chave Unica na tabela, nao precisando manter no Tabela de origem.
Se voce manter, tera uma Chave Syntetica gigante.
srchagas
Então não devo realmente apagar os campos nas tabelas originais como havia entendido e sim criar primeiro uma chave composta nestas tabelas como:
NR_PROCESSO & '|' NR_GUIA as %KeyProcessoGuia ou %KeyLinktable,
NR_PROCESSO ,
NR_GUIA
Campo_de_Data as Data
Posteriormente referencio estes campos na linktable, correto?
A dúvida que ficou agora foi quanto ao uso do concatanete, pode acontecer que numa destas 3 tabelas exista o mesmo NR_PROCESSO, porque que eu usaria NoConcatanete ao invés de Concatanete?
A outra dúvida mais primária seria ao referenciar a tabela na linktable existe diferença entre usar
Resident Tabela_A
ou
FROM
(qvd);
Acredito que a solução que você deu seria a mais viável, porém não estou conseguindo implementar pois na tabela boletos por exemplo existem 3 Campos data, e não posso uni-los em um única chave por nele existir DT_VENCIMENTO, onde utilizo uma flag para datas futiras que exibe os boletos a vencer.
Para boletos o script ficou da seguinte forma:
NR_GUIA as %ID_LINK,
date( DT_PROCESSAMENTO) & '|' & Date( DT_PAGAMENTO) & '|' & Date( DT_VENCIMENTO) AS %TIPO_DATA,
Opa
entao so na primeira tabela do NoConcatenate , nas seguinte tu via usar concatenate para a Link table
Entao as tabela B e C vao concatenar os mesmo campos na Link e serao removido das origens.
algo assim:
NoConcatenate:
Linktable:
%KeyProcessoGuia ou %KeyLinktable,
NR_PROCESSO ,
NR_GUIA
Data
resident Tabela_A
drop Fields
NR_PROCESSO ,
NR_GUIA,
Data
FRom Tabela_A
Concatenate(Linktable)
%KeyProcessoGuia ou %KeyLinktable,
NR_PROCESSO ,
NR_GUIA
Data
resident Tabela_B
drop Fields
NR_PROCESSO ,
NR_GUIA,
Data
From Tabela_B
----------------------------------------------------------
Com relacao ao campo de Data, se ele precisa relacionar na Link e sempre mostrar, usar assim :
Alt(DT_PROCESSAMENTO,DT_PAGAMENTO,DT_VENCIMENTO) as %Tipo_DATA
Alt : verifica se o campo esta vazio e completa com proximo, como se fosse um "Case"
assim voce sempre tera a data possivel
ai tu ve a melhor ordem pra ti, poorque usei como exemplo, mas voce tem certeza que tem sempre data de Processamento, mas nao nem sempre tem de vencimento e precisa ser prioritario poderia ser assim tb
Alt(DT_PAGAMENTO,DT_VENCIMENTO, DT_PROCESSAMENTO) as %Tipo_DATA
Da Menor possibilidade de existir para a maior
Olá srchagas
Consegui implementar a Linktable da forma que você sugeriu, por análise das tabelas eu havia deduzido que esta seria a melhor modelagem de dados para este painel, no entanto os valores continuam incorretos. Eu já testei diversas formas, porém minha experiência com o Qlik ainda é pequena.
Um exemplo seria para o dia 30/03/2017, boletos em aberto deveria exibir 46, e 35 Ordens Canceladas. Outra inconsistência é na tabela da aba Ordens Executadas, a coluna Tipo Alvará não mostra Alvará Eletrônico algum, enquanto a base está cheia deles.
Tem como você analisar o QVW desta resposta e me dar mais uma força nesta modelagem?
Desde já agradeço.
Cara eu cheguei em 265 tirando as guias zeradas...tu fez a chave somente com Processo...nao seria melhor processo e guia? o codigo da guia nao se repete para processo diferente? pr se tiver vai dduplicar...triplicar a ingormacao...nao consegue fazer com processo e guia ??
=count( DISTINCT {< NR_GUIA = {">0"} >} NR_GUIA)
alem do mais essa base ta estranha o que eu entendo de processo e que geralmente ele tem o ano no comeco, logo achei dados de 2014...2015 com essa data, isso ta certo?
Pode ser o campo data ai tu usou nao ta legal....segue o exemplo