Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

etspaz

problema com group by e avg()

Recommended Posts

bom dia pessoal,

estou fazendo um trabalho de facu. e quando usao a instrução

 

select cod_cli from cliente
group by estado_cli

da este erro:

 

Invalid token.

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).

 

e quando uso:

 

select cod_cli, nome_cli,end_cli,tel_cli,cidade_cli, avg(valor_total_compra)
from cliente
order by nome_cli

da este erro:

Invalid token.

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).

 

quando pesquiso só a media não da erro, mas se na mesma pesquisa da media eu peço outros campos da este erro.

sempre vi esta sintaxe nas apostilas de banco, porém baixei o firebird recentemente e talves varie um pouco.

quem puder me dar uma dica, eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza etspaz,

seguinte, no primeiro caso como você não esta usando nenhum tipo de operação com o Sum ou o Avg não existe a necessidade de usar o Group.

 

Já no segundo caso como você utiliza o Avg, você tem que utilizar o Group em relação aos demais campos do seu select, creio que o correto é assim:

 

SELECT cod_cli, nome_cli,end_cli,tel_cli,cidade_cli, avg(valor_total_compra) 
FROM cliente
GROUP BY cod_cli, nome_cli,end_cli,tel_cli,cidade_cli
ORDER BY nome_cli

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza quintelab,

desculpe a demora em dar um alo, é que eu só acesso a net na facu ou no estg., eu gosto de mostrar quando um problema é resolvido e mesmo quando não, de mostrar gratidão pelo esforço.

sobre a questão, porque eu não consigo agrupar só pela cidade, exibindo o codigo, nome, end, tel dos clientes de determinada cidade.

vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara responder um por que de forma técnica eu não sei, mas é assim que funciona, você tem que utilizar no seu group by todos os campos que você deseja mostrar em seu select e que não estejam em algum tipo de operação como o SUM ou o AVG.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.