Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
rafaelmarinho05
Contributor III
Contributor III

Concatenação quando os valores são os mesmo, como distingui-los ?

Amigos bom dia, tenho um Cenário na qual Trago um cubo fechado na qual eu construir uma tabela de Datas, Na qual eu montei

Consulta por 7 dias da Semana:

Consulta por Semana, com base no ultimo dia.

Consulta por Mensal com base no ultimo dia do mês.

Esses campos são calculados no Select oracle, até ai tudo bem, na minha modelagem quando eu concateno cada select referente a cada data, uma hora essas data se confrontão, e no Qlikview ele acaba Somada os valores de duas datas.

Consulta Data Referência.png

Labels (5)
1 Solution

Accepted Solutions
nicolett_yuri

Rafael, crie um campo de FLAG para informar a origem da sua informação.

Este campo Flag pode ser um número ou um texto.

View solution in original post

9 Replies
nicolett_yuri

Rafael, crie um campo de FLAG para informar a origem da sua informação.

Este campo Flag pode ser um número ou um texto.

rafaelmarinho05
Contributor III
Contributor III
Author

Bom dia Yuri, eu tinha criado 'D'&DataReferencia  as DATA_REFERENCIA para o dia e

'M'&DataReferencia  as DATA_REFERENCIA para o mês mas acontece que sumiu as datas...

Quando vc fala de flag é isso ?

TiagoCardoso
Creator II
Creator II

Rafael, boa tarde.

Suponhamos que em duas tabelas você tenha campos de datas e seja necessário criar um campo Flag para aplicar futuras expressões SetAnalysis e diferenciar dados de uma tabela dos dados semelhantes que estão em outra tabela.


NoConcatenate

Tabela 1:

LOAD *, 'Tabela 1' AS Flag [RESIDENT] [FROM][SELCT][...];

Tabela 2:

LOAD *, 'Tabela 2' AS Flag [RESIDENT] [FROM][SELCT][...];

Este seria um exemplo bem básico de como criar campos flag para diferenciar dados que estejam unidos.

Desta maneira, você poderia, por exemplo, fazer uma soma de valores de vendas contidos na tabela 2 (suponhamos que exista este campo):

SUM({<Flag={'Tabela 2'}>}Vendas)

Deste modo somente valores contidos na tabela 2 seriam calculados.

Espero que tenha sido útil.

Att,

Tiago Cardoso

TiagoCardoso
Creator II
Creator II

Rafael, estas combinações de campos que você havia criado são um conceito de chaves, onde você une vários campos e forma uma chave, ou algo que não se repetirá, ao contrário de flag.

rafaelmarinho05
Contributor III
Contributor III
Author

Entendi o conceito de flag, até ja uso na aplicação, são não chamava de flag

(CONSULTA_REFERENCIA_REF = {'1 MES'}>}SALDO_REF) ja o de chaves utilizo bastante tbm, porem não é isso ainda que me atende.

Deixa eu vê se consigo explicar, Cada campo de data representa um select concatenado no Oracle.

Para os Dias:

TRUNC (SYSDATE) as DATA_POSICAO,

TRUNC (SYSDATE-1) as DATA_POSICAO,

TRUNC (SYSDATE-2) as DATA_POSICAO, ....

Para as Semanas:

trunc(Next_Day(SYSDATE-7,6)) as DATA_POSICAO,

trunc(Next_Day(SYSDATE-14,6)) as DATA_POSICAO,...

Para os Meses:

trunc(last_day(ADD_MONTHS(SYSDATE,-1))) as DATA_POSICAO,

trunc(last_day(ADD_MONTHS(SYSDATE,-2))) as DATA_POSICAO,...

Cada linha dessa é um campo de varios selects que concateno na modelagem do Qlikview.

Então quando seleciono uma Destas DATA_POSICAO eu trago uma serie de valores do select, o problema é quando essas datas se Cruzão ele acaba somando o resultado desses 2 Select.

Ex: Ao Fazer as consultas por dia: 03/02/2017, 02/02/2017, 01/02/2017, 31/01/2017, 30/01/2017, 29/01/2017....

      Ao Fazer as consultas por Semana 27/01/2017, 20/01/2017, 13/01/2017...

      Ao Fazer as consultas por Mês 31/01/2017, 31/12/2016, 30/11/2016, 31/10/2016, 30/09/2016

Observe que as datas 31/01/2017 eles se repetem, e no Qlikview ele acaba dobrando o valor, Visualmente ele só mostra uma data, mas o valor é dobrado.

TiagoCardoso
Creator II
Creator II

Mas como você cria as concatenações?

Você faz uma tabela só com os selects de dias e depois faz uma outra tabela CONCATENATE só com o select dos meses e novamente por fim um CONCATENATE só com os selects das semanas? Porque se for assim, você poderia criar essas flags e depois aplicar na tabela da sua aplicação....

E por falar nisso, o quê você usa como dimensão para gerar esta tabela que está no print? São as datas?. E expressões?

rafaelmarinho05
Contributor III
Contributor III
Author

Eu Tenho uma aplicação de carga na qual eu concateno os selects, e storo vários arquivo, conforme as unidades de negócio e Contas a Receber, Cheque e Cartão

Ai a nivel de aplicação na modelagem eu concateno esses todos os arquivos storados pois são as mesmas estruturas.

Essa Tabela é uma lista normal que traz os resultados ja calculados como no exemplo citado antes, e esse filtro por conta da modelagem deixa meu resultado todo dinâmico com base no dia escolhido.

Vc chegou a olhar a aplicação de exemplo ?

TiagoCardoso
Creator II
Creator II

Não consegui olhar a aplicação. Pede ID de Usuário.

rafaelmarinho05
Contributor III
Contributor III
Author

Obrigado @nicolett.yuri @ tiagocardoso

Criei uma Flag numerada e concatenei com o Campo DATA_POSICAO,
Problema Resolvido.flag numerada.PNG