Tenho uma tabela dinâmica que apresenta produtos que podem ter pedidos do tipo "Produção" e "Venda".
Precisaria que gerasse um filtro com o resultado das colunas da tabela. Ou seja, filtro "Produção" e filtro "Venda" e que
as dimensões fossem o resultado das colunas.
Exemplo: iria aparecer (0 e 1), assim poderia fazer várias combinações, como filtrar produtos que tem pedido de produção e que não tem pedido de Venda.
Segue script....
Tmp:
LOAD * INLINE [
Produto , Tipo_Pedido
122 ,Venda
155 ,Venda
455 ,Producao
277 ,Producao
888 ,Producao
888 ,Venda
999 ,Producao
999 ,Venda
333 ,Venda
];
TabelaFinal:
LOAD
Produto,
if(Tipo_Pedido='Producao','Sim','Não') as Tem_Producao2
Resident Tmp Where Tipo_Pedido = 'Producao';
join
LOAD
Produto,
if(Tipo_Pedido='Venda','Sim','Não') as Tem_Venda2
Resident Tmp Where Tipo_Pedido = 'Venda';
//
left join (TabelaFinal)
LOAD
Produto,
if(IsNull(Tem_Producao2),'Não',Tem_Producao2) as Tem_Producao,
if(IsNull(Tem_Venda2) ,'Não',Tem_Venda2) as Tem_Venda
Resident TabelaFinal;
//
left join (TabelaFinal)
LOAD
Produto,
Tem_Producao,
Tem_Venda,
// Cria um unico filtro para as duas situacoes......
if(Tem_Producao='Sim' and Tem_Venda='Sim','Com Producao e Venda',
if(Tem_Producao='Sim' and Tem_Venda='Não','Com Producao e Sem Venda',
if(Tem_Producao='Não' and Tem_Venda='Sim','Sem Producao e Com Venda',
if(Tem_Producao='Não' and Tem_Venda='Não','Sem Producao e Sem Venda')))) as Tem_Producao_e_Venda
Resident TabelaFinal;
//
Drop Fields Tem_Venda2,Tem_Producao2;
Drop Table Tmp;
Bom dia,
@PeterMathias Crie o script esse filtro.
Load if(Producao = 1 and Venda = 1, 1, 0) as Filtro, * from tabela ;
Acho que isso te ajuda.
Peter,
segue modelo Qlik Sense com exemplo.
Segue script....
LOAD
Produto,
Producao,
Venda,
// Cria um filtro para cada campo
if(Producao=1,'Sim','Não') as Tem_Producao,
if(Venda =1,'Sim','Não') as Tem_Venda,
// Cria um unico filtro para as duas situacoes......
if(Producao=1 and Venda=1,'Com Producao e Venda',
if(Producao=1 and Venda=0,'Com Producao e Sem Venda',
if(Producao=0 and Venda=1,'Sem Producao e Com Venda',
if(Producao=0 and Venda=0,'Sem Producao e Sem Venda')))) as Tem_Producao_e_Venda;
LOAD * INLINE [
Produto , Producao , Venda
122 , 0 ,1
155 ,0 ,1
445 ,1 ,0
277 ,1 ,0
888 ,1 ,1
999 ,1 ,1
333 ,0 ,1
];
Valeu Alessandro Furtado vou testar!
Alessandro a ideia é exatamente esse seu exemplo.
Minha dificuldade é que na minha tabela de dados não existe de fato duas colunas
"Producao" e "Venda", e sim apenas uma "Tipo_Pedido", como nesse exemplo:
LOAD * INLINE [
Produto , Tipo_Pedido
122 ,Venda
155 ,Venda
455 ,Producao
277 ,Producao
888 ,Producao
888 ,Venda
999 ,Producao
999 ,Venda
333 ,Venda
Então criei o filtro "Producao" e "Venda":
if(Tipo_Pedido='Producao','Sim','Não') as Tem_Producao,
if(Tipo_Pedido='Venda','Sim','Não') as Tem_Venda;
Só que não consigo criar o filtro único que você fez:
// Cria um unico filtro para as duas situacoes......
// if(Producao=1 and Venda=1,'Com Producao e Venda',
// if(Producao=1 and Venda=0,'Com Producao e Sem Venda',
// if(Producao=0 and Venda=1,'Sem Producao e Com Venda',
// if(Producao=0 and Venda=0,'Sem Producao e Sem Venda')))) as Tem_Producao_e_Venda;:
Pois quando escolho o filtro "Tem_Venda" automaticamente não tenho possibilidade de escolher pedidos de Producao
Peter, segue modelo
Segue script....
Tmp:
LOAD * INLINE [
Produto , Tipo_Pedido
122 ,Venda
155 ,Venda
455 ,Producao
277 ,Producao
888 ,Producao
888 ,Venda
999 ,Producao
999 ,Venda
333 ,Venda
];
TabelaFinal:
LOAD
Produto,
if(Tipo_Pedido='Producao','Sim','Não') as Tem_Producao2
Resident Tmp Where Tipo_Pedido = 'Producao';
join
LOAD
Produto,
if(Tipo_Pedido='Venda','Sim','Não') as Tem_Venda2
Resident Tmp Where Tipo_Pedido = 'Venda';
//
left join (TabelaFinal)
LOAD
Produto,
if(IsNull(Tem_Producao2),'Não',Tem_Producao2) as Tem_Producao,
if(IsNull(Tem_Venda2) ,'Não',Tem_Venda2) as Tem_Venda
Resident TabelaFinal;
//
left join (TabelaFinal)
LOAD
Produto,
Tem_Producao,
Tem_Venda,
// Cria um unico filtro para as duas situacoes......
if(Tem_Producao='Sim' and Tem_Venda='Sim','Com Producao e Venda',
if(Tem_Producao='Sim' and Tem_Venda='Não','Com Producao e Sem Venda',
if(Tem_Producao='Não' and Tem_Venda='Sim','Sem Producao e Com Venda',
if(Tem_Producao='Não' and Tem_Venda='Não','Sem Producao e Sem Venda')))) as Tem_Producao_e_Venda
Resident TabelaFinal;
//
Drop Fields Tem_Venda2,Tem_Producao2;
Drop Table Tmp;
Exatamente isso! Obrigado Alessandro