Comparar campos e retornar um terceiro campo
Estou fazendo um select unindo duas tabelas, uma delas tem os parametros para comissionamento das vendas e outra as vendas... elas estao ligadas pela tabela produtos... o select é mais ou menos assim:
select Descricao_Cls, MetaMensal_Cld, ComisVend_Cld, Sum(Valor_Ven) as ValorFaturado from classificacaoProduto
left join Produto on Codigo_Cls=Classificacao_prod
left join Vendas on Produto_Ven=Codigo_Prod
left join ClassificacaoProdDetalhes on Codigo_cls=Codigo_Cld
Group by Descricao_Cls, MetaMensal_Cld, ComisVend_Cld
agora eu quero comparar o seguinte, na tabela ClassificacaoProdDetalhes, tem dois campos que é o seguinte, Proporçao da comissão se a meta de vendas for atingida e proporçao se não for atingida.
entao no select eu queria comparar os campos: Se o Sum(Valor_Ven)>=MetaMensal_Cld, entao resulta um campo que é o seguinte:
(Sum(Valor_Ven)*(ComisVend_Cld*Acima_Cld)/100) e se Sum(Valor_Ven)<MetaMensal_Cld entao resulta (Sum(Valor_Ven)*(ComisVend_Cld*Abaixo_Cld)/100)
não sei se expliquei direito, mas estava precisando de ajuda neste select, se alguém puder gastar um tempinho aí fico muito grato.
Um abraço a todos
select Descricao_Cls, MetaMensal_Cld, ComisVend_Cld, Sum(Valor_Ven) as ValorFaturado from classificacaoProduto
left join Produto on Codigo_Cls=Classificacao_prod
left join Vendas on Produto_Ven=Codigo_Prod
left join ClassificacaoProdDetalhes on Codigo_cls=Codigo_Cld
Group by Descricao_Cls, MetaMensal_Cld, ComisVend_Cld
agora eu quero comparar o seguinte, na tabela ClassificacaoProdDetalhes, tem dois campos que é o seguinte, Proporçao da comissão se a meta de vendas for atingida e proporçao se não for atingida.
entao no select eu queria comparar os campos: Se o Sum(Valor_Ven)>=MetaMensal_Cld, entao resulta um campo que é o seguinte:
(Sum(Valor_Ven)*(ComisVend_Cld*Acima_Cld)/100) e se Sum(Valor_Ven)<MetaMensal_Cld entao resulta (Sum(Valor_Ven)*(ComisVend_Cld*Abaixo_Cld)/100)
não sei se expliquei direito, mas estava precisando de ajuda neste select, se alguém puder gastar um tempinho aí fico muito grato.
Um abraço a todos
Edjborges
Curtidas 0
Respostas
Rjun
26/09/2005
Você pode usar o CASE.
SELECT Descricao_Cls, MetaMensal_Cld, ComisVend_Cld, Sum(Valor_Ven) as ValorFaturado, CASE WHEN Sum(Valor_Ven) >= MetaMensal_Cld THEN (Sum(Valor_Ven)*(ComisVend_Cld*Acima_Cld)/100) WHEN Sum(Valor_Ven) < MetaMensal_Cld THEN (Sum(Valor_Ven)*(ComisVend_Cld*Abaixo_Cld)/100) END AS Comissao FROM ClassificacaoProduto LEFT JOIN Produto ON Codigo_Cls = Classificacao_prod LEFT JOIN Vendas ON Produto_Ven=Codigo_Prod LEFT JOIN ClassificacaoProdDetalhes ON Codigo_cls=Codigo_Cld GROUP BY Descricao_Cls, MetaMensal_Cld, ComisVend_Cld
GOSTEI 0
Edjborges
26/09/2005
Valeu RJun
Resultado perfeito, já havia tentado fazer o Case, mas errei na implementação, pois estava acostumado a usar o Case em campos string
mas ficou perfeito
valeu mesmo
Att.
Resultado perfeito, já havia tentado fazer o Case, mas errei na implementação, pois estava acostumado a usar o Case em campos string
mas ficou perfeito
valeu mesmo
Att.
GOSTEI 0