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]

Responder a