• 0
Sign in to follow this  
Camila Santos

GROUP BY, SUM + WHERE

Question

Preciso fazer uma consulta mas o comando que não ta funcionando, me ajuda ai por favor tentando me orientar onde estou errando e porque...

Tenho uma tabela de notas fiscais de entradas. Quero selecionar alguns campos dela e soma-los para conferir se os valores dentro de um determinado período somam realmente o que o relatório no sistema informa ou se bate com os valores do escritório de contabilidade, que divergem do sistema. Conferi nota por nota no sistema de acordo com o relatório de contabilidade e todas as notas estão lançadas ok. Porém, da uma diferença de 12 mil reais pra mais no sistema. Acredito que possa ser alguma nota que o cliente lançou com data errada no período, por isso queria fazer a consulta diretamente no banco pra tirar a prova real, digamos assim

Segue query que to tentando usar

select notafiscal, datadaemissao, datadachegada, totalnota, sum(totalnota) as total_geral (esses são os dados que preciso puxar pro caso de dar a mais, conferir quais notas estão a mais ai)

from nf_entra (a tabela que to puxando)

where datadachegada between '01.02.2012' and '29.02.2012' (preciso das notas dentro desse periodo)

group by datadachegada, total_geral

Ele não funcionad. Essa base esta no ibExpert... Não consigo executar a consulta e não consegui identidicar onde estou errado.

Ele da esse erro

"Invalid token.

Dynamic SQL Error.

SQL error code = -104.

Cannot use an aggregate function in a GROUP BY clause."

Ai eu tiro o group by e da um erro que cobrando o GROUP BY

"Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)."

Se puderem me ajudar, ficarei agradecida

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Boa tarde Camila,

você dá um select em vários campos: notafiscal, datadaemissao, datadachegada e totalnota.

você quer agrupar pelos campos: datadachegada, total_geral.

O que está errado:

- você não pode agrupar por ALIAS.

- você especifica como retorno os campos notafiscal e datadaemissao, que não estão no agrupamento.

Ou você coloca as colunas de retorno no agrupamento, ou as retira.

Share this post


Link to post
Share on other sites
  • 0
Boa tarde Camila,

você dá um select em vários campos: notafiscal, datadaemissao, datadachegada e totalnota.

você quer agrupar pelos campos: datadachegada, total_geral.

O que está errado:

- você não pode agrupar por ALIAS.

- você especifica como retorno os campos notafiscal e datadaemissao, que não estão no agrupamento.

Ou você coloca as colunas de retorno no agrupamento, ou as retira.

Ola Fulvio, obrigada por sua resposta... Depois que postei que vi o que tava tentando fazer.... rs...

Resolvi isoladamente mesmo...

Fiz um select pra somar os valores

select sum(totalnota) as total_geral

from nf_entra

where datadachegada between '01.02.2012' and '29.02.2012'

E outro pra checar os numeros com os do relatorio

select notafiscal, datadaemissao, datadachegada, totalnota

from nf_entra

where datadachegada between '01.02.2012' and '29.02.2012'

order by notafiscal asc

E eu queria na verdade os resultados desses selects em uma unica tabela, era isso que tava tentando fazer...

Mas obrigada a ajuda

Share this post


Link to post
Share on other sites
  • 0

Bom dia Camila,

Caso queira o resultado em uma unica tabela, terá que fazer com um subselect. Mas aí perderá na performance e a manutenção fica um pouco mais complexa.

De nada. Caso tenha alguma dúvida, pode postar!! :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this