Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Preciso calcular descontos de acordo com o ano de vencimento de contribuições.
O desconto concedido é diferente para cada ano.
Para isso criei a carga de valores no script da seguinte forma:
Desconto:
Load * Inline
[Exercicio, Fator_desconto
2007,0
2008,0
2009,50
2010,40
2011,35
2012,30
2013,25
2014,10]
;
Na sequência faço carga dos dados do SQL.
SQL SELECT "Processo_ID",
"Corretor ID" as Corretor_ID,
"Tipo Contribuicao",
Exercicio,
Parcela,
"Valor Contribuicao",
"Data Vencimento",
"Data Pagamento",
"Valor Contribuicao"+Multa+Juros as "Valor Pago",
Multa,
Juros,
Pago
FROM SINCOR.dbo."Contribuicoes Sabro_Qlik";
Minha questão é: como criar os campos:
valor do desconto
valor a pagar
Como faço no script a relação entre o campo Exercicio de cada tabela para identificar o desconto a ser concedido?
Olá Luiz, boa noite.
Veja se assim lhe atende.
MAP_Desconto:
Mapping
Load * Inline
[Exercicio, Fator_desconto
2007,0
2008,0
2009,50
2010,40
2011,35
2012,30
2013,25
2014,10]
;
Dados:
LOAD
Processo_ID
,Corretor_ID
,[Tipo Contribuicao]
,Exercicio
,FatorDesconto
,Parcela
,[Valor Contribuicao]
,[Data Vencimento]
,[Data Pagamento]
,[Valor Pago]*(1-(FatorDesconto/100)) as ValorComDesconto
,[Valor Pago]
,Multa
,Juros
,Pago;
LOADProcesso_ID
,Corretor_ID
,[Tipo Contribuicao]
,Exercicio
,ApplyMap('MAP_Desconto',Exercicio) As FatorDesconto
,Parcela
,[Valor Contribuicao]
,[Data Vencimento]
,[Data Pagamento]
,[Valor Pago]
,Multa
,Juros
,Pago
;
SQL SELECT "Processo_ID",
"Corretor ID" as Corretor_ID,
"Tipo Contribuicao",
Exercicio,
Parcela,
"Valor Contribuicao",
"Data Vencimento",
"Data Pagamento",
"Valor Contribuicao"+Multa+Juros as "Valor Pago",
Multa,
Juros,
Pago
FROM SINCOR.dbo."Contribuicoes Sabro_Qlik";
Qlikfique-se.
Tonial.
Olá Luiz, boa noite.
Veja se assim lhe atende.
MAP_Desconto:
Mapping
Load * Inline
[Exercicio, Fator_desconto
2007,0
2008,0
2009,50
2010,40
2011,35
2012,30
2013,25
2014,10]
;
Dados:
LOAD
Processo_ID
,Corretor_ID
,[Tipo Contribuicao]
,Exercicio
,FatorDesconto
,Parcela
,[Valor Contribuicao]
,[Data Vencimento]
,[Data Pagamento]
,[Valor Pago]*(1-(FatorDesconto/100)) as ValorComDesconto
,[Valor Pago]
,Multa
,Juros
,Pago;
LOADProcesso_ID
,Corretor_ID
,[Tipo Contribuicao]
,Exercicio
,ApplyMap('MAP_Desconto',Exercicio) As FatorDesconto
,Parcela
,[Valor Contribuicao]
,[Data Vencimento]
,[Data Pagamento]
,[Valor Pago]
,Multa
,Juros
,Pago
;
SQL SELECT "Processo_ID",
"Corretor ID" as Corretor_ID,
"Tipo Contribuicao",
Exercicio,
Parcela,
"Valor Contribuicao",
"Data Vencimento",
"Data Pagamento",
"Valor Contribuicao"+Multa+Juros as "Valor Pago",
Multa,
Juros,
Pago
FROM SINCOR.dbo."Contribuicoes Sabro_Qlik";
Qlikfique-se.
Tonial.
Bom dia Fernando
Sem querer abusar de sua boa vontade, mas abusando...rsrs
Acabei não colocando na questão a carga de uma outra tabela onde consta o descritivo das contribuições.
E não sei como fazer essa vinculação.
// Carrega os tipos de Contribuição
SQL SELECT "Dado_ID" as "Tipo Contribuicao",
UPPER(Dado) as Contribuição,
DadDadosTipoID
FROM SINCOR.dbo.Dados
WHERE Dado_ID > 1668 and Dado_ID < 1672 and Dado_ID<> 1670;
E sobre abusar que falei acima: vou tentar entender o script que vc escreveu, pois não adianta apenas colar e executar, certo?
E aí vou te incomodar, se for possível, claro... rsrs
Abraços
Luiz Cláudio
Olá Luiz, bom dia.
Quando você carrega essa segunda tabela ela já efetua a associação entre as duas tabelas, pois existe um campo em comum entre elas ([Tipo Contribuicao]), ficando esse campo como chave, isso já o suficiente para a análise das informações.
Você realmente necessita colocar as informações de segundo SQL na mesma tabela do Primeiro SQL?
Qlikfique-se.
Tonial.
Foi o que tinha pensado...
Mas já encontrei o problema.
O script estava dando erro, mas acho que era por causa da posição onde havia colocado a carga dessa tabela.
Coloquei no final do script e funcionou sem problema.
Agora vou estudar esse mapeamento para entender melhor o processo e "qlikficar-me" mais...rsrs
Abraços
Esse processo de mapeamento é simples. O QlikView irá fazer um de/para, onde a primeira coluna é o campo que ele irá comparar e a segunda coluna é resultado caso ele encontre o valor na primeira.
Nesse caso, utilizamos a função ApplyMap para que o mapeamento ocorra.
Qlikfique-se.
Tonial.