Duvida com SQL

Delphi

29/11/2007

Estou com esse SQL
select id_cliente_fk, sum((case when CHEQUE_PAGO = ´NÃO´ then VALOR else 0 end)) 
Valor from CHEQUES where 
ID_CLIENTE_FK= :ID_CLIENTE_FK 
group by id_cliente_fk 

Esse SQL acima pega perfeitamente.

Mas quando adiciono outro campo ´cliente.nome_cli´ da erro. SQL:
select id_cliente_fk, cliente.nome_cli, sum((case when CHEQUE_PAGO = ´NÃO´ then VALOR else 0 end)) 
Valor from CHEQUES inner join cliente on cheques.id_cliente_fk = cliente.id_cliente where 
ID_CLIENTE_FK= :ID_CLIENTE_FK 
group by id_cliente_fk 

Da esse erro:
--------------------------- 
Debugger Exception Notification 
--------------------------- 
Project SisFactory.exe raised exception class EUIBError with 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) Invalid token Error Code: 249´. Process stopped. Use Step or Run to continue. 
--------------------------- 
OK   Help   

Que faço?
Já coloquei o group by 1 ou group by id_cliente_fk e fica dando esse erro. Só não da erro quando só coloco o campo que vou agregar.
Alguem sabe?


Jpauloss

Jpauloss

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

29/11/2007

todos os campos selecionados e não agregados (usados em fórmulas) devem ser colocados no agrupamento.
select
  id_cliente_fk, cliente.nome_cli,
  sum((case when CHEQUE_PAGO = ´NÃO´ then VALOR else 0 end)) Valor
from
  CHEQUES
inner join
  cliente on cheques.id_cliente_fk = cliente.id_cliente
where
  ID_CLIENTE_FK= :ID_CLIENTE_FK
group by
  id_cliente_fk, cliente.nome_cli



GOSTEI 0
POSTAR