Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa noite pessoal.
Estou com um problema na geração de link table e não estou conseguindo resolver.
Possuo na minha carga dois fatos, onde cada um possui datas.
Ao criar a link table, realizar a criação das tabelas temporárias, estou fazendo os left joins entre elas e depois as concatenando.
O problema que em um fato eu tenho registros desde 1995 e outro fato desde 2009 e por algum motivo o Qlikview está apenas enxergando a data a partir de 2009.
Poderiam me ajudar?
Obrigado,
Fábio.
Galera..
Resolvido.. Criei um Link via SQL.. fazendo os lefts joins entre as tabelas.. tirando as colunas de data das duas e as demais chaves para as dimensões deixando todas na link...
Valeu!
Bom dia!
Você faz o Left Join com a tabela que tem datas de 1995? Chegou a verificar se ele já não exlcui algum registro no join? Poderia postar o script ou um exemplo da aplicação?
Rebeca
Bom oq eu faria no caso de ter datas nas tabelas, seria a criação de uma tabela calendario a partir desse campo data, concatenando com as tabelas fatos por exemplo
[TABELA_FATO_1]:
NOME,
CODIGO,
DATA AS DATA_CHAVE_FATO_1
FROM FATO_1
[TABELA_FATO_2]:
NOME_CLIENTE,
CODIGO_CLIENTE,
DATA AS DATA_CHAVE_FATO_2
FROM FATO_2
[CALENDARIO]:
LOAD
DATA_FATO_1 AS DATA_CHAVE_FATO_1,
MONTH(DATA_FATO_1 ) AS MES_CALENDARIO,
YEAR(DATA_FATO_1 ) AS ANO_CALENDARIO,
DAY(DATA_FATO_1 ) AS DIA_CALENDARIO,
Resident TABELA_FATO_1
Concatenate(CALENDARIO)
LOAD
DATA_FATO_2 AS DATA_CHAVE_FATO_2,
MONTH(DATA_FATO_2 ) AS MES_CALENDARIO,
YEAR(DATA_FATO_2 ) AS ANO_CALENDARIO,
DAY(DATA_FATO_2 ) AS DIA_CALENDARIO,
Resident TABELA_FATO_2;
Pessoal
Segue código:
Tabelas Fato:
Fato_Finan_CRE:
LOAD
"CD_CLIENTE" & "NR_MATRICULA" & "CD_CONTA_RECEBER" AS LNK_CRE_FINAN,
"CD_CLIENTE" as "NR_MATRICULA_CRE",
"CD_CONTA_RECEBER" as CD_CONTA_RECEBER_CRE,
"CD_ESTRUTURA",
"CD_FUNCAO",
"CD_MODALIDADE_FINAN",
"CD_SAFRA",
"CD_TIPO_DOCUMENTO" as "CD_LINHA_FINANCIAMENTO",
"CD_TIPO_FINANCIAMENTO",
"DT_REFERENCIA" AS DT_REFERENCIA_CRE,
"VL_CONTA_RECEBER",
"NR_DIAS_ATRASO",
"DS_CARTEIRA",
"DS_CRE",
"IE_PARC_ATRAS";
SQL SELECT "CD_CLIENTE",
"CD_CONTA_RECEBER",
"CD_ESTRUTURA",
"CD_FUNCAO",
"CD_MODALIDADE_FINAN",
"CD_SAFRA",
"CD_TIPO_DOCUMENTO",
"CD_TIPO_FINANCIAMENTO",
"DT_REFERENCIA",
"NR_MATRICULA",
"NR_DIAS_ATRASO",
"DS_CARTEIRA",
case
when
ds_carteira is null then
'CRE'
else
null
end as DS_CRE,
case
when
ds_carteira is not null then
1
else
null
end as IE_PARC_ATRAS,
case
when
vl_conta_receber < 0 and cd_tipo_financiamento in (86, 3725) then
vl_conta_receber
when
vl_conta_receber < 0 and cd_tipo_financiamento not in (86, 3725) then
0
when
vl_conta_receber > 0 then
vl_conta_receber
end VL_CONTA_RECEBER
FROM "BIC_COOP"."F_CONTAREC"
WHERE
DT_REFERENCIA <= '31/05/2013'
ORDER BY DT_REFERENCIA;
Fato_Reciprocidade:
//-------- Start Multiple Select Statements ------
LOAD "CD_RECIPROCIDADE",
"CD_RECIPROCIDADE" AS CD_RECIPROCIDADE_REC,
"CD_PESSOA" & DT_REFERENCIA & CD_RECIPROCIDADE as LNK_FATO_REC,
"CD_PESSOA" as NR_MATRICULA_REC,
"CD_AREA_APURACAO",
"CD_CULTURA",
"DT_REFERENCIA" as DT_REFERENCIA_REC,
"CD_ITEM_APURACAO",
"CD_FORMA_CALCULO",
"CD_PORTE_COOPERADO",
"QT_PONDERACAO",
"DS_CLASS_ATRIBUIDA",
"DS_CLASS_CALC_GERAL",
"DS_CLASS_CALC_AREA",
"QT_BASE",
"VL_MARGEM_CONTRIBUICAO",
"VL_BASE",
"QT_OPERACOES_REALIZADAS";
SQL SELECT *
FROM "BIC_COOP"."F_RECIPROCIDADE_COM"
ORDER BY DT_REFERENCIA ASC;
---- Tabelas Link
TMP_Link_Finan:
LOAD
LNK_CRE_FINAN,
NR_MATRICULA_CRE AS NR_MATRICULA,
DT_REFERENCIA_CRE AS DT_REFERENCIA,
CD_CONTA_RECEBER_CRE AS CD_CONTA_RECEBER
RESIDENT
Fato_Finan_CRE;
TMP_Link_Reciproc:
LOAD
LNK_FATO_REC,
NR_MATRICULA_REC as NR_MATRICULA,
DT_REFERENCIA_REC as DT_REFERENCIA,
CD_RECIPROCIDADE_REC as CD_RECIPROCIDADE
RESIDENT
Fato_Reciprocidade;
TMP_Link_Finan2:
NoConcatenate
LOAD
LNK_CRE_FINAN,
NR_MATRICULA,
DT_REFERENCIA,
CD_CONTA_RECEBER
RESIDENT
TMP_Link_Finan;
LEFT JOIN
LOAD
LNK_FATO_REC,
NR_MATRICULA,
DT_REFERENCIA,
CD_RECIPROCIDADE
RESIDENT
TMP_Link_Reciproc;
TMP_Link_Reciproc2:
NoConcatenate
LOAD
LNK_FATO_REC,
NR_MATRICULA,
DT_REFERENCIA,
CD_RECIPROCIDADE
RESIDENT
TMP_Link_Reciproc;
LEFT JOIN
LOAD
LNK_CRE_FINAN,
NR_MATRICULA,
DT_REFERENCIA,
CD_CONTA_RECEBER
RESIDENT
TMP_Link_Finan;
// Elimina as tabelas temporárias do Link da primeira etapa.
DROP TABLE TMP_Link_Finan;
DROP TABLE TMP_Link_Reciproc;
CONCATENATE('TMP_Link_Reciproc2')
LOAD
LNK_CRE_FINAN,
NR_MATRICULA,
DT_REFERENCIA,
LNK_FATO_REC
RESIDENT
TMP_Link_Finan2;
DROP TABLE
TMP_Link_Finan2;
// Elimina campos temporários usados para criar a tabela link.
DROP FIELDS
NR_MATRICULA_CRE, DT_REFERENCIA_CRE, CD_CONTA_RECEBER_CRE;
DROP FIELDS
NR_MATRICULA_REC, DT_REFERENCIA_REC, CD_RECIPROCIDADE_REC;
RENAME TABLE TMP_Link_Reciproc2 TO Link_Fatos;
Galera..
Resolvido.. Criei um Link via SQL.. fazendo os lefts joins entre as tabelas.. tirando as colunas de data das duas e as demais chaves para as dimensões deixando todas na link...
Valeu!