[firebase-br] Group By

Kléber Caneva kdcc em terra.com.br
Qui Nov 17 09:15:57 -03 2005


Jean,

Esso erro deve-se ao Interbase permitir que se escreva uma clausula select 
erroneamente. O FB não permite esse tipo de erro.

Na clausula GROUP BY, você deve indicar todos os campos que não usam funções 
de grupos. No seu caso: nfs.cli_codcliente, nfs.dataemissao, 
ven_codvendedor, numeronota, codigonaturezaoperacao e naturezaoperacao 
(lembrando que os ultimos 3 tem que ser informado através do numero da 
coluna)

Outra coisa que o FB não permite é vc referenciar uma coluna sem informar o 
alias, que exista em duas tabelas usadas no select. Nesse  caso você é 
obrigado a informava o alias. Ex: v.CodVendedor e c.CodVendedor

[]´s

Kléber Caneva


----- Original Message ----- 
From: "Jean Vichinheski" <jean em equipesul.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, November 16, 2005 3:00 PM
Subject: [firebase-br] Group By


> Boa tarde !!!
> Estamos migrando um sistema de interbase 6. 0 para firebird 1.5 !
> No firebird 1.5 tem esse select que o meu sistema executa !
>
>
> SELECT nfs.cli_codcliente, nfs.dataemissao, 0 as ven_codvendedor,  0 as 
> numeronota, 0 as codigonaturezaoperacao,
> null as naturezaoperacao,  null as serie, null as cidade,
> sum(nfs.totalnota) as TotalSaida, sum(nfe.totalNota) as totalEntrada
> FROM cliente c, vendedor v, naturezaoperacao nat, notafiscalsaida nfs
> LEFT join notafiscalentrada nfe ON nfe.CodigoNotaFiscalSaida = 
> nfs.CodigoNotaFiscalSaida
> WHERE nfs.cli_codcliente = c.cli_codcliente
> AND nfs.ven_codvendedor = v.ven_codvendedor
> AND nfs.codigonaturezaoperacao = nat.codigonaturezaoperacao
> AND (nfe.totalNota is null or nfs.totalNota <> nfe.totalNota)
> AND nfs.dataemissao >= '11/01/2005'  AND nfs.dataemissao <= '11/20/2005'
> AND nfs.totalnota >= 0.00    AND nfs.faturado = "T"   AND nfs.cancelada <> 
> "T"
> AND nfs.cfg_codconfig = 2
> AND nfs.codigonaturezaoperacao in 
> (510101,510101,510101,515501,515501,515501,592201,592201,592201,592202,594901,594901,594901,594902,594903,610101,610101,610101,610201,610201,610201,615501,615501,615501,694901,694901,694901,694902,694903)
> AND (C.Relatorio not LIKE '%V%'    OR C.relatorio is null)
> AND nfs.codigonotafiscalsaida in (select distinct(codigonotafiscalsaida) 
> from produtonotasaida)
> group by nfs.cli_codcliente, nfs.dataemissao
> order by c.codigocliente, nfs.dataemissao
> ele da esse erro
>
>
> " can't format message 13:896 -- message file C:\Arquivos de 
> programas\HK-Software\firebird.msg not found.Dynamic SQL Error.SQL error 
> code = -104.Invalid expression in the ORDER BY clause (not contained in 
> either an aggregate function or the GROUP BY clause"
>
> ai no final do select se eu fizer
>
> group by nfs.cli_codcliente, nfs.dataemissaoorder by c.codigocliente, 
> nfs.dataemissao da erro
>
> e se mudar novamente pra isso da certo
> group by nfs.cli_codcliente, nfs.dataemissaoorder by nfs.cli_codcliente, 
> nfs.dataemissao
>
> e mudando novamente
> pra isso da erro
>
> group by c.codigocliente, nfs.dataemissaoorder by c.codigocliente, 
> nfs.dataemissao
>
>
> Alguem sabe se é um bug ou o q é ??? no interbase 6.0 da maneira que tava 
> original o select funciona!!
>
> grato pela atenção!!
>
> abs,
> Jean
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> E-mail classificado pelo Identificador de Spam Inteligente Terra.
> Para alterar a categoria classificada, visite
> http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1132160766.848355.9737.rucuru.terra.com.br,5254,Des15,Des15
>
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 15/11/2005 / Versão: 
> 4.4.00/4628
> Proteja o seu e-mail Terra: http://mail.terra.com.br/
>
> 






Mais detalhes sobre a lista de discussão lista