Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Ola amigos Qlik´ers
Estou em com uma duvida.
Tenho Uma tabela de Títulos Projetados, e outra tabela dos Títulos que foram realizados.
Eu gostaria de ter o seguinte resultado:
Quais foram os títulos que estavam projetados e que foram realizados
Quais os valores que foram realizados que não estavam projetados.
Eu gostaria de enxergá-los em listas diferentes
Exemplo
Titulos Projetados
Titulos | Valores |
---|---|
1605847 | R$ 1,00 |
1605848 | R$ 2,00 |
1605843 | R$ 3,00 |
1605850 | R$ 5,00 |
1600543 | R$ 8,00 |
1605851 | R$ 9,00 |
Títulos Realizados
Titulos | Valores |
---|---|
1605848 | R$ 2,00 |
1605843 | R$ 3,00 |
1600543 | R$ 8,00 |
1605851 | R$ 9,00 |
2222222 | R$ 10,00 |
Como resultado eu teria uma lista :
Títulos projetado Realizados
1605848 | R$ 2,00 |
1605843 | R$ 3,00 |
1600543 | R$ 8,00 |
1605851 | R$ 9,00 |
Títulos Não Realizados
1605847 | R$ 1,00 |
1605850 | R$ 5,00 |
E Títulos Não Projetado porem Realizados
2222222 | R$ 10,00 |
Por gentileza amigos, poderiam me ajudar mais uma vez ???
Abs
Eduardo,
faria usando o join e un left join para criar o status...
Titulos:
LOAD * INLINE [
Titulos , Projetado
1605847 , 1
1605848 , 2
1605843 , 3
1605850 , 5
1600543 , 8
1605851 , 9
];
join
LOAD * INLINE [
Titulos , Realizado
1600543 , 8
1605843 , 3
1605848 , 2
1605851 , 9
2222222 , 10
];
left join (Titulos)
LOAD
Titulos,
if(Projetado = Realizado,'Projetado e Realizado',
if(not isnull(Projetado) and IsNull(Realizado),'Projetado e Não Realizado',
if(isnull(Projetado) and not IsNull(Realizado),'Não Projetado e Realizado','A definir'))) as Status
Resident Titulos;
Resultado:
Titulos | Projetado | Realizado | Status |
---|---|---|---|
1600543 | 8 | 8 | Projetado e Realizado |
1605843 | 3 | 3 | Projetado e Realizado |
1605847 | 1 | Projetado e Não Realizado | |
1605848 | 2 | 2 | Projetado e Realizado |
1605850 | 5 | Projetado e Não Realizado | |
1605851 | 9 | 9 | Projetado e Realizado |
2222222 | 10 | Não Projetado e Realizado |
Pode-se usar o Status em um set analysis para mostrar da forma como quiser.
Boa tarde,
Da forma a consegui o resultado.
Veja se pode te ajudar!
RealizadoTmp:
//Titulos_Projetado
LOAD *
Inline [
titulo, valores
1605847 , 1
1605848 , 2
1605843 , 3
1605850 , 5
1600543 , 8
1605851 , 9
];
Left Join (RealizadoTmp)
//Titulos_Realizados:
LOAD *
Inline [
titulo, valores, flg_realizado
1605848 , 2, 1
1605843 , 3, 1
1600543 , 8, 1
1605851 , 9, 1
2222222 , 10, 1
];
NoConcatenate
Realizado:
LOAD titulo as titulo_re, valores as valores_re
Resident RealizadoTmp
Where flg_realizado =1;
NoConcatenate
Projetado_não_realizado:
LOAD titulo as titulo_pr, valores as valores_pr
Resident RealizadoTmp
Where flg_realizado <> 1;
DROP Table RealizadoTmp;
NoConcatenate
Não_projetado_realizadoTmp:
//Titulos_Projetado
LOAD *
Inline [
titulo_n_pr, valores_n_pr
1605848 , 2
1605843 , 3
1600543 , 8
1605851 , 9
2222222 , 10
];
Left Join (Não_projetado_realizadoTmp)
//Titulos_Realizados:
LOAD *
Inline [
titulo_n_pr, valores_n_pr, flg_n_realizado
1605847 , 1, 1
1605848 , 2, 1
1605843 , 3, 1
1605850 , 5, 1
1600543 , 8, 1
1605851 , 9, 1
];
NoConcatenate
Não_projetado_realizado:
LOAD *
Resident Não_projetado_realizadoTmp
Where flg_n_realizado <> 1;
DROP Table Não_projetado_realizadoTmp;
Eduardo,
Sem maiores detalhes sobre a estrutura das tabelas fica um pouco complicado ajudar mais, mas tente algo parecido com o seguinte.
Titulos_Temp:
Load
Titulo,
Valor as Valor_projetado
from Tabela_De_Titulos_Projetados;
outer join(Titulos_Temp)
Load
Titulo,
Valor as Valor_Realizado
from Tabela_De_Titulos_Realizados;
noconcatenate
Titulos:
Load
Titulo,
Valor_Realizado,
Valor_projetado,
if(Valor_projetado=0,'N','S') as Projetado,
if(Valor_Realizado=0,'N','S') as Realizado
resident Titulos_Temp:
Titulos Valor_Projetado Valor_Realizado Projetado Realizado
1605848 2,00 2,00 S S
1605843 3,00 3,00 S S
1600543 8,00 8,00 S S
1605851 9,00 9,00 S S
1605847 1,00 0,00 S N
1605850 5,00 0,00 S N
2222222 0,00 10,00 N S
Dessa forma em uma unica tabela voce terá para cada titulo os valores projetados e realziados, e identificadores para informar se o titulo foi projetado ou realizado.
Espero ter ajudados.
Faça uma leitura em um resident somente com o campo título usando concatenate de todas as bases.
Dessa forma vc terá uma base com todos os títulos.
Depois vc faz Left join nessa resident com as bases criando as flags
Enviado do meu iPhone
Em 14 de nov de 2016, às 17:13, marciel malta <qcwebmaster@qlikview.com> escreveu:
Qlik Community
Titulos Realizados x Projetados
resposta de marciel malta em Qlik Brasil - Visualize a discussão completa
Boa tarde,
Da forma a consegui o resultado.
Veja se pode te ajudar!
RealizadoTmp:
//Titulos_Projetado
LOAD *
Inline [
titulo, valores
1605847 , 1
1605848 , 2
1605843 , 3
1605850 , 5
1600543 , 8
1605851 , 9
];
Left Join (RealizadoTmp)
//Titulos_Realizados:
LOAD *
Inline [
titulo, valores, flg_realizado
1605848 , 2, 1
1605843 , 3, 1
1600543 , 8, 1
1605851 , 9, 1
2222222 , 10, 1
];
NoConcatenate
Realizado:
LOAD titulo as titulo_re, valores as valores_re
Resident RealizadoTmp
Where flg_realizado =1;
NoConcatenate
Projetado_não_realizado:
LOAD titulo as titulo_pr, valores as valores_pr
Resident RealizadoTmp
Where flg_realizado <> 1;
DROP Table RealizadoTmp;
NoConcatenate
Não_projetado_realizadoTmp:
//Titulos_Projetado
LOAD *
Inline [
titulo_n_pr, valores_n_pr
1605848 , 2
1605843 , 3
1600543 , 8
1605851 , 9
2222222 , 10
];
Left Join (Não_projetado_realizadoTmp)
//Titulos_Realizados:
LOAD *
Inline [
titulo_n_pr, valores_n_pr, flg_n_realizado
1605847 , 1, 1
1605848 , 2, 1
1605843 , 3, 1
1605850 , 5, 1
1600543 , 8, 1
1605851 , 9, 1
];
NoConcatenate
Não_projetado_realizado:
LOAD *
Resident Não_projetado_realizadoTmp
Where flg_n_realizado <> 1;
DROP Table Não_projetado_realizadoTmp;
Responda a esta mensagem respondendo a este e-mail ou vá para a mensagem em Qlik Community
Inicie uma nova discussão em Qlik Brasil por e-mail ou em Qlik Community
Seguindo Qlik Brasil nestes fluxos: Caixa de Entrada
Eduardo,
faria usando o join e un left join para criar o status...
Titulos:
LOAD * INLINE [
Titulos , Projetado
1605847 , 1
1605848 , 2
1605843 , 3
1605850 , 5
1600543 , 8
1605851 , 9
];
join
LOAD * INLINE [
Titulos , Realizado
1600543 , 8
1605843 , 3
1605848 , 2
1605851 , 9
2222222 , 10
];
left join (Titulos)
LOAD
Titulos,
if(Projetado = Realizado,'Projetado e Realizado',
if(not isnull(Projetado) and IsNull(Realizado),'Projetado e Não Realizado',
if(isnull(Projetado) and not IsNull(Realizado),'Não Projetado e Realizado','A definir'))) as Status
Resident Titulos;
Resultado:
Titulos | Projetado | Realizado | Status |
---|---|---|---|
1600543 | 8 | 8 | Projetado e Realizado |
1605843 | 3 | 3 | Projetado e Realizado |
1605847 | 1 | Projetado e Não Realizado | |
1605848 | 2 | 2 | Projetado e Realizado |
1605850 | 5 | Projetado e Não Realizado | |
1605851 | 9 | 9 | Projetado e Realizado |
2222222 | 10 | Não Projetado e Realizado |
Pode-se usar o Status em um set analysis para mostrar da forma como quiser.
Alessandro,
Bom dia.
Muito obrigado pela ajuda, era o que estava precisando.
Abraços