Ir para conteúdo
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

agrupar e somar


Antony

Posts Recomendados


  • Tópicos Que Criei:  138
  • Tópicos/Dia:  0.03
  • Meu Conteúdo:  567
  • Conteúdo/Dia:  0.12
  • Reputação:   6
  • Pontos/Conquistas:  4.176
  • Conteúdo Resolvido:  0
  • Dias Ganho:  4
  • Status:  Offline

Como posso agrupar pelo os campos (ftb1.codtb1flx as Cod_subgrupo, ftb1.descricao as Descrição_Subgrupo) e somar

O campo (titmmov.valortotalitem)

select tmov.numeromov,tprd.codigoreduzido, tprd.nomefantasia,

ftb1.codtb1flx as Cod_subgrupo, ftb1.descricao as Descrição_Subgrupo,

ftb2.codtb2flx as Cod_grupo, ftb2.descricao as Descrição_grupo, titmmov.valortotalitem

from tmov (nolock)

left outer join titmmov on

titmmov.codcoligada = tmov.codcoligada

and titmmov.idmov = tmov.idmov

left outer join tprd on

tprd.codcoligada = titmmov.codcoligada

and tprd.idprd = titmmov.idprd

left outer join ftb1 on

ftb1.codcoligada = titmmov.codcoligada

and ftb1.codtb1flx = titmmov.codtb1flx

left outer join ftb2 on

ftb2.codcoligada = titmmov.codcoligada

and ftb2.codtb2flx = titmmov.codtb2flx

where

codtmv = '1.2.10'

and tmov.idmov = '42468'

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  69
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  339
  • Conteúdo/Dia:  0.06
  • Reputação:   12
  • Pontos/Conquistas:  2.393
  • Conteúdo Resolvido:  0
  • Dias Ganho:  8
  • Status:  Offline
  • Idade:  46

Antony,

Boa Noite!

Neste caso você deve utilizar a cláusula Group by e também a função SUM, veja abaixo:

select

d.codtb1flx as Cod_Subgrupo, d.descricao Descrição_Subgrupo, sum(b.valortotalitem) Total

from

tmov a (nolock)

left outer join titmmov b (nolock) on b.codcoligada = a.codcoligada and b.idmov = a.idmov

left outer join tprd c (nolock) on c.codcoligada = a.codcoligada and c.idprd = b.idprd

left outer join ftb1 d (nolock) on d.codcoligada = a.codcoligada and d.codtb1flx = b.codtb1flx

left outer join ftb2 e (nolock) on e.codcoligada = a.codcoligada and e.codtb2flx = b.codtb2flx

where

a.codcoligada=????

and a.codtmv = '1.2.10'

and a.idmov = '42468'

group by d.codtb1flx, d.descricao

Espero ter ajudado.

Como posso agrupar pelo os campos (ftb1.codtb1flx as Cod_subgrupo, ftb1.descricao as Descrição_Subgrupo) e somar

O campo (titmmov.valortotalitem)

select tmov.numeromov,tprd.codigoreduzido, tprd.nomefantasia,

ftb1.codtb1flx as Cod_subgrupo, ftb1.descricao as Descrição_Subgrupo,

ftb2.codtb2flx as Cod_grupo, ftb2.descricao as Descrição_grupo, titmmov.valortotalitem

from tmov (nolock)

left outer join titmmov on

titmmov.codcoligada = tmov.codcoligada

and titmmov.idmov = tmov.idmov

left outer join tprd on

tprd.codcoligada = titmmov.codcoligada

and tprd.idprd = titmmov.idprd

left outer join ftb1 on

ftb1.codcoligada = titmmov.codcoligada

and ftb1.codtb1flx = titmmov.codtb1flx

left outer join ftb2 on

ftb2.codcoligada = titmmov.codcoligada

and ftb2.codtb2flx = titmmov.codtb2flx

where

codtmv = '1.2.10'

and tmov.idmov = '42468'

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  1
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  6
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  40
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Alguem pode me ajudar na sentença SQL abaixo (banco oracle). Objetivo soma dos valores de alguns eventos.

resultado conseguido:

10,07 - 15

12,14 - 17

14,21 - 18

objetivo:

36,42 - 50

sentença:

select case when (select sum (pffinanc.valor)from pffinanc where mescomp=:mes_competencia and anocomp=:ano_competencia and (codevento='0022' or codevento='0294' or codevento='0287') and pffinanc.chapa=:chapa)>0 then sum (pffinanc.valor) end v,

case when (select sum (pffinanc.ref) from pffinanc where mescomp=:mes_competencia and anocomp=:ano_competencia and (codevento='0022' or codevento='0294' or codevento='0287') and pffinanc.hora =0 and pffinanc.chapa=:chapa)>0 then sum (pffinanc.ref) end r,

case when (select sum (pffinanc.hora) from pffinanc where mescomp=:mes_competencia and anocomp=:ano_competencia and (codevento='0022' or codevento='0294' or codevento='0287') and pffinanc.chapa=:chapa)>0 then sum (pffinanc.hora) end h

from pffinanc

where

pffinanc.chapa=:chapa

and

(pffinanc.codevento='0022' or pffinanc.codevento='0294' or pffinanc.codevento='0287')

and

mescomp=:mes_competencia

and

anocomp=:ano_competencia

group by pffinanc.valor

order by pffinanc.valor

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  885
  • Tópicos/Dia:  0.13
  • Meu Conteúdo:  8.802
  • Conteúdo/Dia:  1.34
  • Reputação:   291
  • Pontos/Conquistas:  106.268
  • Conteúdo Resolvido:  0
  • Dias Ganho:  185
  • Status:  Offline
  • Idade:  51
  • Dispositivo:  Windows

Nao seria apenas isso abaixo ?

select sum (isnull(pffinanc.valor,0))  v, sum (isnull(pffinanc.ref,0))  r, sum (isnull(pffinanc.hora,0)) h
from  pffinanc
where (pffinanc.codevento='0022' or pffinanc.codevento='0294' or pffinanc.codevento='0287') and 
           pffinanc.chapa=:chapa and
       	mescomp=:mes_competencia and 
       	anocomp=:ano_competencia
group by pffinanc.chapa
order by pffinanc.chapa

Neste caso, alem de mudar o group by e o order by para CHAPA, tirei todas as condicoes que estavam no select, afinal, elas ja eram exatamente as mesmas do seu WHERE. Se voce deixasse o Group com pffinanc.valor, nao tinha como somar como eh o que deseja.

Editado por Jair - Fórmula
Apaguei umas coisas que ficaram erradas na parte do SELECT
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  1
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  6
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  40
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

gerou este erro:

----------------

ORA-00923: palavra-chave FROM não localizada onde esperada

ORA-06512: em "RM.SPCVALIDASQL", line 23

ORA-06512: em line 1

Código do erro: [0dc060f56fed3fedf055af476510b102]

mas acompanhando seu raciocinio, fiz assim e deu certo.

--------------------------------------------------------

select sum (case when (select sum (pffinanc.valor) from pffinanc where mescomp=:mes_competencia and anocomp=:ano_competencia and (codevento='0022' or codevento='0294' or codevento='0287') and pffinanc.chapa=:chapa)>0 then sum (pffinanc.valor) end) v,

max (case when (select (pffinanc.ref) from pffinanc where mescomp=:mes_competencia and anocomp=:ano_competencia and codevento='0022' and pffinanc.hora =0 and pffinanc.chapa=:chapa)>0 then sum (pffinanc.ref) end) r,

sum (case when (select sum (pffinanc.hora) from pffinanc where mescomp=:mes_competencia and anocomp=:ano_competencia and (codevento='0022' or codevento='0294' or codevento='0287') and pffinanc.chapa=:chapa)>0 then sum (pffinanc.hora) end) h

from pffinanc

where

pffinanc.chapa=:chapa

and

(pffinanc.codevento='0022' or pffinanc.codevento='0294' or pffinanc.codevento='0287')

and

mescomp=:mes_competencia

and

anocomp=:ano_competencia

group by pffinanc.valor

order by pffinanc.valor

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  885
  • Tópicos/Dia:  0.13
  • Meu Conteúdo:  8.802
  • Conteúdo/Dia:  1.34
  • Reputação:   291
  • Pontos/Conquistas:  106.268
  • Conteúdo Resolvido:  0
  • Dias Ganho:  185
  • Status:  Offline
  • Idade:  51
  • Dispositivo:  Windows

Corrigi acima no post anterior. Tinham umas coisas que nao apaguei quando reescrevi.

No seu post acima, voce fala que mudou conforme o meu raciocinio mas parece que colou exatamente o texto original. Nao entendi !!

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  1
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  6
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  40
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Jair, muito obrigado. fiz algumas adaptações e a sentença abaixo deu certo, a sua sugestão fez com que a sentença ficasse mais rápida, prática e 'limpa', obrigado.

select sum (pffinanc.valor) v, sum (pffinanc.ref) r, sum (pffinanc.hora) h

from pffinanc

where (pffinanc.codevento='0022' or pffinanc.codevento='0294' or pffinanc.codevento='0287') and

pffinanc.chapa=:chapa and

pffinanc.valor> 0 and

mescomp=:mes_competencia and

anocomp=:ano_competencia

group by pffinanc.chapa

order by pffinanc.chapa

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

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

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.