Fórum Erro na consulta em Sql #496235

01/10/2014

0

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
Tiago Rodrigues

Tiago Rodrigues

Responder

Post mais votado

01/10/2014

Meu banco é oracle e o select abaixo funcionou.

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

Eraldo Duarte

Eraldo Duarte
Responder

Gostei + 1

Mais Posts

01/10/2014

Rafael Cunha

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
Responder

Gostei + 0

01/10/2014

Tiago Rodrigues

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]
Responder

Gostei + 0

01/10/2014

Eraldo Duarte

Acho que o erro está no alias que vc colocou na linha 2.
Tente rodar sem o "AS TOTAL".
Responder

Gostei + 0

01/10/2014

Tiago Rodrigues

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]
Responder

Gostei + 0

01/10/2014

Eraldo Duarte

Seu banco é ORACLE?
Responder

Gostei + 0

01/10/2014

Tiago Rodrigues

Firebird
Responder

Gostei + 0

01/10/2014

Fabiano Carvalho

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


Responder

Gostei + 1

01/10/2014

Eraldo Duarte

O código do FaabiianooC ficou mais legivel/inteligente. Mas faltou a clausula "group by".


GROUP BY VENDAS.VENDEDOR
Responder

Gostei + 0

01/10/2014

Tiago Rodrigues

O codigo do Fabiano rodou filé, so vou
mudar os valores....Muito obrigado, e precisar
de alguma coisa, estamos aqui...abração pra todos!!!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar