O que está errado no meu select com group?
Bom dia amigos, a sintaxe parece-me estar correta (mas está com errado e portanto não está correta), mas não consigo identificar o problema.
Tenho uma tabela de atendimentos com nomes de clientes repetidos, num group quero agrupá-los para que o usuário possa seleciona e trazer os dados de endereço e outros.
Erro retornado:
Segue a sintaxe:
aguardo ajuda
mario
Tenho uma tabela de atendimentos com nomes de clientes repetidos, num group quero agrupá-los para que o usuário possa seleciona e trazer os dados de endereço e outros.
Erro retornado:
Invalid expression in th select list (not contained in either an aggregate function or the GROUP BY clause)
Segue a sintaxe:
CommandText := ´select * from ficha where nomcli like :nomeproc and codemp=:Codemp group by nomcli order by nomcli´; ParamByName(´NomeProc´).AsString := CampoProcura.Text+´¬´ ;
aguardo ajuda
mario
Aldus
Curtidas 0
Respostas
Anderson Belém
11/05/2007
Como seria esse agrupamento, desculpe mais não entendi o que vc quer.
Pode exemplificar?
Uso do Group By
O comando group by poderá ser usado em conjunto com as seguintes funções:
MAX retorna o maior valor de uma coluna
MIN retorna o menor valor de uma coluna
COUNT conta o número de registros de uma coluna
AVG retorna a média aritimética dos valores de uma coluna
SUM retorna a soma dos valores de uma coluna
Pode exemplificar?
Erro retornado:
Segue a sintaxe:
Invalid expression in th select list (not contained in either an aggregate function or the GROUP BY clause)
CommandText := ´select * from ficha where nomcli like :nomeproc and codemp=:Codemp group by nomcli order by nomcli´; ParamByName(´NomeProc´).AsString := CampoProcura.Text+´¬´ ;
Uso do Group By
O comando group by poderá ser usado em conjunto com as seguintes funções:
MAX retorna o maior valor de uma coluna
MIN retorna o menor valor de uma coluna
COUNT conta o número de registros de uma coluna
AVG retorna a média aritimética dos valores de uma coluna
SUM retorna a soma dos valores de uma coluna
GOSTEI 0
Pestana_
11/05/2007
Qual banco vc está usando?
experimente colocar o campo que está sendo agrupado no caso (nomcli) no select, ficaria assim: Select nomcli From ficha .....
outra questão, você está acrescentando um parâmetro a mais neste select, porque não está especificado ai no exemplo?
flw.
experimente colocar o campo que está sendo agrupado no caso (nomcli) no select, ficaria assim: Select nomcli From ficha .....
outra questão, você está acrescentando um parâmetro a mais neste select, porque não está especificado ai no exemplo?
ParamByName(´Codemp´).Value := NomeVariavel;
flw.
GOSTEI 0
Aldus
11/05/2007
Bom dia, utilizo Fire 2.
Aquele campo parâmetro é um Edit que uso para procurar, no caso do Nomcli, quando digito nesse Edit o sistema vai filtrando por ´like´.
Preciso usar ´*´, pois após agrupar, se usuário pres enter, eu levo a alguns edits os valores de nome, endereco, fone.
Já tentei usar select nomcli,endereco,bairro,fone from ficha group by nomcli só que retorna o mesmo erro, se eu usar apenas select nomcli from ficha group by nomcli, funciona perfeitamente, só que daí não tenho acesso aos campos endereço,bairro,...
Att
Aquele campo parâmetro é um Edit que uso para procurar, no caso do Nomcli, quando digito nesse Edit o sistema vai filtrando por ´like´.
Preciso usar ´*´, pois após agrupar, se usuário pres enter, eu levo a alguns edits os valores de nome, endereco, fone.
Já tentei usar select nomcli,endereco,bairro,fone from ficha group by nomcli só que retorna o mesmo erro, se eu usar apenas select nomcli from ficha group by nomcli, funciona perfeitamente, só que daí não tenho acesso aos campos endereço,bairro,...
Att
GOSTEI 0
Martins
11/05/2007
Bom dia, utilizo Fire 2.
Aquele campo parâmetro é um Edit que uso para procurar, no caso do Nomcli, quando digito nesse Edit o sistema vai filtrando por ´like´.
Preciso usar ´*´, pois após agrupar, se usuário pres enter, eu levo a alguns edits os valores de nome, endereco, fone.
Já tentei usar select nomcli,endereco,bairro,fone from ficha group by nomcli só que retorna o mesmo erro, se eu usar apenas select nomcli from ficha group by nomcli, funciona perfeitamente, só que daí não tenho acesso aos campos endereço,bairro,...
Att
Tente assim:
select Count(nomcli), endereco, bairro, fone from ficha group by nomcli
GOSTEI 0
Aldus
11/05/2007
Coloquei o código como vc sugeriu, sem where, like ou order e não aceita o group se tiver mais de um campo no select.
Continuou com o mesmo erro
Continuou com o mesmo erro
GOSTEI 0
Martins
11/05/2007
Tente então assim.
select nomcli, endereco, bairro, fone, Count(nomcli) from ficha group by nomcli, endereco, bairro, fone
GOSTEI 0
Aldus
11/05/2007
Martins, funcionou com última modificação sugerida.
Obrigado pela atenção e bom fim de semana.
Att
Mario
Obrigado pela atenção e bom fim de semana.
Att
Mario
GOSTEI 0
Martins
11/05/2007
Martins, funcionou com última modificação sugerida.
Obrigado pela atenção e bom fim de semana.
Att
Mario
:D Sem problemas, se precisar estaremos prontos para tentar ajudar.
boa sorte.
GOSTEI 0