Ednro, bom dia.
Sobre os detalhes da cláusula GROUP BY podes pesquisar na net para ter todos os detalhes dela. Neste seu select esta cláusula não faz sentido. O group by é usado quando existem funções no select do tipo MAX, SUM ou seja funções que agrupem dados. Por exemplo você quer saber o último lançamento para cada cliente: SELECT MAX(L.COD_LANCAMENTO), C.COD_CLIENTE dai dá um group by pelo COD_CDCLIENTE. Como nesse seu select não existe nenhuma função como esta essa cláusula não faz sentido visto que você terá que declarar todas as colunas, que não estão em nenhuma função, no Group by. Se tem algum problema de relacionamento nessa query que está repetindo as colunas, e você não quer arrumar isso, experimente usar a cláusula DISTINCT no inicio da query: SELECT DISTINCT L.COD_LANCAMENTO, TC.NOME_TPCONTA, TD.NOME_DOCUMENTO, TD.TIPO FROM LANCAMENTO L INNER JOIN TIPO_CONTA TC ON (TC.COD_TPCONTA = L.COD_TPCONTA) INNER JOIN TIPO_DOCUMENTO TD ON (TD.COD_TPDOCUMENTO = L.COD_TPDOCUMENTO) Isso já deve dá o resultado esperado por você. Ednro Jr escreveu: > > Olá galera, > > Dá uma ajuda aê... essa é facinha. > > SELECT L.COD_LANCAMENTO, TC.NOME_TPCONTA, TD.NOME_DOCUMENTO, TD.TIPO > FROM LANCAMENTO L > INNER JOIN TIPO_CONTA TC ON (TC.COD_TPCONTA = L.COD_TPCONTA) > INNER JOIN TIPO_DOCUMENTO TD ON (TD.COD_TPDOCUMENTO = > L.COD_TPDOCUMENTO) > > como faço para agrupar (GROUP BY) por (TC.NOME_TPCONTA) nessa > instrução??? Que limites há com nesta instrução??? > > Firebird 2.0.1.12855 > Delphi 2006 > > [As partes desta mensagem que não continham texto foram removidas]