Antony Postado 18 de Março de 2011 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 Denunciar Compartilhar Postado 18 de Março de 2011 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' Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Cleiton Souza Postado 20 de Março de 2011 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 Denunciar Compartilhar Postado 20 de Março de 2011 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' Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
SERGIO RICARDO Postado 21 de Março de 2011 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 Denunciar Compartilhar Postado 21 de Março de 2011 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 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 21 de Março de 2011 Tópicos Que Criei: 899 Tópicos/Dia: 0.14 Meu Conteúdo: 8.841 Conteúdo/Dia: 1.34 Reputação: 310 Pontos/Conquistas: 106.574 Conteúdo Resolvido: 0 Dias Ganho: 195 Status: Offline Idade: 52 Dispositivo: Windows Denunciar Compartilhar Postado 21 de Março de 2011 (editado) 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 21 de Março de 2011 por Jair - Fórmula Apaguei umas coisas que ficaram erradas na parte do SELECT Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
SERGIO RICARDO Postado 21 de Março de 2011 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 Denunciar Compartilhar Postado 21 de Março de 2011 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 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 21 de Março de 2011 Tópicos Que Criei: 899 Tópicos/Dia: 0.14 Meu Conteúdo: 8.841 Conteúdo/Dia: 1.34 Reputação: 310 Pontos/Conquistas: 106.574 Conteúdo Resolvido: 0 Dias Ganho: 195 Status: Offline Idade: 52 Dispositivo: Windows Denunciar Compartilhar Postado 21 de Março de 2011 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 !! Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
SERGIO RICARDO Postado 22 de Março de 2011 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 Denunciar Compartilhar Postado 22 de Março de 2011 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 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
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.