Erro na consulta em Sql

Firebird

01/10/2014

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

Curtidas 0

Melhor post

Eraldo Duarte

Eraldo Duarte

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
GOSTEI 1

Mais Respostas

Rafael Cunha

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

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]
GOSTEI 0
Eraldo Duarte

Eraldo Duarte

01/10/2014

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

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

Eraldo Duarte

01/10/2014

Seu banco é ORACLE?
GOSTEI 0
Tiago Rodrigues

Tiago Rodrigues

01/10/2014

Firebird
GOSTEI 0
Fabiano Carvalho

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

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

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!!!
GOSTEI 0
POSTAR