Sentença Sql com erro e não consigo ver o erro

Firebird

26/03/2005

Montei uma senteça sql usando select case como está abaixo:

SELECT V.CODCLI, CASE WHEN (V.VALCOR IS NOT NULL) THEN (SUM(V.VALCOR))
WHEN (V.VALCOR IS NULL) THEN (SUM(V.VALTOT))
END AS SALDO_DEVEDOR
FROM VENDAS V
WHERE V.CODCLI = :pCli AND DATPAG IS NULL
GROUP BY V.CODCLI;

E mesmo informando o Parametro ela me da o seguinte erro:

ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)

Statement: SELECT V.CODCLI, CASE WHEN (V.VALCOR IS NOT NULL) THEN (SUM(V.VALCOR))
WHEN (V.VALCOR IS NULL) THEN (SUM(V.VALTOT))
END AS SALDO_DEVEDOR
FROM VENDAS V
WHERE V.CODCLI = :pCli AND DATPAG IS NULL
GROUP BY V.CODCLI

Por favor se alguem puder me ajudar ficarei muito grato

Atenciosamente,

Tadeu


Numeros.info

Numeros.info

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

26/03/2005

se estiver utilizando o FB 1.5, tente assim:

SELECT V.CODCLI, SUM(COALESCE(V.VALCOR,V.VALTOT,0)) SALDO_DEVEDOR
FROM VENDAS V
WHERE V.CODCLI = :pCli AND DATPAG IS NULL
GROUP BY V.CODCLI


GOSTEI 0
POSTAR