Erro na consulta em Sql
Boa tarde,
Estou querendo calcular a comissao dos vendedores, isso vai variar de acordo
o total das vendas, o exemplo que estou enviando, é se por o caso o total
das vendas desse cara for maior que 100, a consulta irá multiplicar por 1.1, se
não for ele vai multiplicar por 0.9. Tenho a tabela Vendas, dentro dela eu tenho
os campos do codigo do vendedor e o total de vendas por nota. So que não
consigo executar esse codigo. Alguém poderia me ajudar?
SELECT VENDAS.VENDEDOR,
CASE SUM(VENDAS.TOTAL) AS TOTAL
WHEN > 100 THEN sum(vendas.total * 1.1
ELSE sum(vendas.total * 0.9
END AS COMISSAO
FROM VENDAS
WHERE VENDAS.VENDEDOR IS NOT NULL
Estou querendo calcular a comissao dos vendedores, isso vai variar de acordo
o total das vendas, o exemplo que estou enviando, é se por o caso o total
das vendas desse cara for maior que 100, a consulta irá multiplicar por 1.1, se
não for ele vai multiplicar por 0.9. Tenho a tabela Vendas, dentro dela eu tenho
os campos do codigo do vendedor e o total de vendas por nota. So que não
consigo executar esse codigo. Alguém poderia me ajudar?
SELECT VENDAS.VENDEDOR,
CASE SUM(VENDAS.TOTAL) AS TOTAL
WHEN > 100 THEN sum(vendas.total * 1.1
ELSE sum(vendas.total * 0.9
END AS COMISSAO
FROM VENDAS
WHERE VENDAS.VENDEDOR IS NOT NULL
Tiago Rodrigues
Curtidas 0
Melhor post
Eraldo Duarte
01/10/2014
Meu banco é oracle e o select abaixo funcionou.
Tente executar para ver se funciona no Firebird:
Tente executar para ver se funciona no Firebird:
SELECT VENDAS.VENDEDOR,
CASE SIGN(SUM(VENDAS.TOTAL)-100)
WHEN 1 THEN SUM(vendas.total * 1.1)
ELSE SUM(vendas.total * 0.9)
END AS COMISSAO
FROM VENDAS
WHERE VENDAS.VENDEDOR IS NOT NULL
GROUP BY VENDAS.VENDEDOR
GOSTEI 1
Mais Respostas
Rafael Cunha
01/10/2014
Já tento realizar a consulta da seguinte maneira
SELECT VENDAS.VENDEDOR,
CASE SUM(VENDAS.TOTAL) AS TOTAL
WHEN > 100 THEN sum(vendas.total * 1.1
ELSE sum(vendas.total * 0.9
END AS COMISSAO
FROM VENDAS
WHERE VENDAS.VENDEDOR IS NOT NULL
group by VENDAS.VENDEDOR
GOSTEI 0
Tiago Rodrigues
01/10/2014
Eu acho que é alguma coisa na Soma das vendas, veja aí o print do erro
[img:descricao=Print do Erro]http://arquivo.devmedia.com.br/forum/imagem/389088-20141001-172415.png[/img]
[img:descricao=Print do Erro]http://arquivo.devmedia.com.br/forum/imagem/389088-20141001-172415.png[/img]
GOSTEI 0
Eraldo Duarte
01/10/2014
Acho que o erro está no alias que vc colocou na linha 2.
Tente rodar sem o "AS TOTAL".
Tente rodar sem o "AS TOTAL".
GOSTEI 0
Tiago Rodrigues
01/10/2014
Depois que tirei os ''AS TOTAL", passou da primeira linha, agora erro deu na terceira...veja aí[img]http://arquivo.devmedia.com.br/forum/imagem/389088-20141001-175805.png[/img]
GOSTEI 0
Eraldo Duarte
01/10/2014
Seu banco é ORACLE?
GOSTEI 0
Tiago Rodrigues
01/10/2014
Firebird
GOSTEI 0
Fabiano Carvalho
01/10/2014
SELECT VENDAS.VENDEDOR, CASE WHEN SUM(VENDAS.TOTAL) > 100 THEN sum(vendas.total * 1.1) ELSE sum(vendas.total * 0.9) END AS COMISSAO FROM VENDAS WHERE VENDAS.VENDEDOR IS NOT NULL
GOSTEI 1
Eraldo Duarte
01/10/2014
O código do FaabiianooC ficou mais legivel/inteligente. Mas faltou a clausula "group by".
GROUP BY VENDAS.VENDEDOR
GOSTEI 0
Tiago Rodrigues
01/10/2014
O codigo do Fabiano rodou filé, so vou
mudar os valores....Muito obrigado, e precisar
de alguma coisa, estamos aqui...abração pra todos!!!
mudar os valores....Muito obrigado, e precisar
de alguma coisa, estamos aqui...abração pra todos!!!
GOSTEI 0