Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Querendo_ser_Nerd

Soma de Linhas

Recommended Posts

Boa Tarde, Pessoal meu dilema da vez é o seguinte, eu preciso mostrar ao usuário a soma de alguns valores porém envolve nomes diferentes...exemplo...

Esta me trazendo assim,

Cod. Nome Valor

01 joão $5,00

01 João $8,50

02 Maria $10,00

02 Maria $12,90

03 Kaka $5,50 rsrs

03 kaka $5,90

Preciso que fique assim....

Cod. Nome Valor

01 joão $13,50

02 Maria $22,90

03 kaka $11,10

 

Preciso que ele some os valores das colunas porem por nomes diferentes... segue o cod. que consegui obter o primeiro resultado das tabelas acima.

 

select c.seqpessoa,p.fantasia,r.NROREPRESENTANTE, r.APELIDO,v.nrodocto,v.vlritem
from consinco.MAD_REPRESENTANTE r,consinco.mrl_clienteseg c,consinco.ge_pessoa p,consinco.MAXV_ABCDISTRIBBASE V
where r.NROREPRESENTANTE in ( 402 )
and v.seqpessoa = c.seqpessoa
and v.seqpessoa = p.seqpessoa
and c.nrorepresentante = r.nrorepresentante
and c.seqpessoa = p.seqpessoa
and v.dtahorlancto >= '28-oct-2013'
and v.nroempresa in (1,3)
and c.status = 'A'
order by r.APELIDO;

 

Espero que alguem possa me ajudar.. Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma solucao e usar uma funcao que remova acentos, converta para maisculas etc.

 

Outra seria fazer

 

 

Select id, max(nome), sum(valor) ...

S

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se vc tem nomes diferentes aplique uma função para torná-los iguais, único jeito.

 

Remover acentos (tinha um script aqui no imasters para isto), use UPPER ou LOWER para ficar tudo igual.

 

=========

 

Agora, vc deve ter um problema de modelagem e/ou integridade

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele me trouxe a soma total das linhas =\ eu preciso por nome

 

se a coluna "valor" for realmente numérica tente a função SUM,

agrupada pelo nome ou pelo código (neste caso se de fato cada pessoa tem seu id próprio)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia\tarde

 

Pessoal eu fiz um comando group by certo, e não fiz a união da (v.vlritem) elke trouxe os resultados mais ainda não soma tudo.

 

 

select distinct c.seqpessoa,p.fantasia,r.NROREPRESENTANTE, r.APELIDO,v.nrodocto,sum(v.vlritem)
from MAD_REPRESENTANTE r,mrl_clienteseg c,ge_pessoa p,MAXV_ABCDISTRIBBASE V
where r.NROREPRESENTANTE in ( 402 )
and v.seqpessoa = c.seqpessoa
and v.seqpessoa = p.seqpessoa
and c.nrorepresentante = r.nrorepresentante
and c.seqpessoa = p.seqpessoa
and v.dtahorlancto >= '28-oct-2013'
and v.nroempresa in (1,3)
and c.status = 'A'
group by c.seqpessoa,p.fantasia,r.NROREPRESENTANTE, r.APELIDO,v.nrodocto

Compartilhar este post


Link para o post
Compartilhar em outros sites

O resultado que você colocou, possui apenas 3 colunas e a query possui 6, fica difícil ajudar, não sei qual coluna é qual.

 

mas tente isso, não sei se aqueles nomes diferentes são propositais ou não:

 

select distinct c.seqpessoa,p.fantasia,r.NROREPRESENTANTE, upper(r.APELIDO),v.nrodocto,sum(v.vlritem)
from MAD_REPRESENTANTE r,mrl_clienteseg c,ge_pessoa p,MAXV_ABCDISTRIBBASE V
where r.NROREPRESENTANTE in ( 402 )
and v.seqpessoa = c.seqpessoa
and v.seqpessoa = p.seqpessoa
and c.nrorepresentante = r.nrorepresentante
and c.seqpessoa = p.seqpessoa
and v.dtahorlancto >= '28-oct-2013'
and v.nroempresa in (1,3)
and c.status = 'A'
group by c.seqpessoa,p.fantasia,r.NROREPRESENTANTE, upper(r.APELIDO),v.nrodocto;

Compartilhar este post


Link para o post
Compartilhar em outros sites

BooOOooOa Tarde, rs feridão foi bom!

 

Galera resolvi

 

 

select c.seqpessoa,p.fantasia,r.NROREPRESENTANTE, r.APELIDO,sum(v.vlritem) as ValorPedido
from ....

where r.Apelido = :LS1
and v.seqpessoa = c.seqpessoa
and v.seqpessoa = p.seqpessoa
and c.nrorepresentante = r.nrorepresentante
and c.seqpessoa = p.seqpessoa
and v.dtahorlancto >= :DT1
and v.dtahorlancto <= :DT2
and v.nroempresa in (1,3)
and c.status = 'A'
group by c.seqpessoa,p.fantasia,r.NROREPRESENTANTE, r.APELIDO
order by p.fantasia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoal, Para não abrir outro topico vai neste mesmo rs

 

O pessoal Aqui gosta de somar e meu dilema agora, seria somar o valor total de tudo, pois aqui eu necessito em duas colunas fazer dois tipos de contas, uma conta de multiplicação e a outra de soma com o resultado da conta de multiplicação.

 

ex

 

Cod. Nome Valor Total:

01 joão $5,00 $47,80

01 João $8,50 $47,80

02 Maria $10,00 $47,80

02 Maria $12,90 $47,80

03 Kaka $5,50 $47,80

03 kaka $5,90 $47,80

 

 

 

Estou fazendo algo parecido com isso mais não está dando certo.

 

select a.nrocarga, a.seqlote, a.seqproduto, b.pesobruto, a.nroquebra, a.qtdembalagem, a.coddepossepar, a.coddepositante,
a.nroempresa, a.seqendereco, a.qtdembsolicitada, a.qtdembseparada, a.impmapasepar, a.tipespecie, a.nrolote, a.nropedvenda,(b.pesobruto*a.qtdembseparada),sum(b.pesobruto*a.qtdembseparada)
from mlo_cargaesepara a, mlo_prodembalagem b
where a.seqproduto = b.seqproduto
and a.nroempresa = b.nroempresa
and a.qtdembalagem = b.qtdembalagem
and a.nrocarga = 132124
and a.seqlote = 197
group by a.nrocarga, a.seqlote, a.seqproduto, b.pesobruto, a.nroquebra, a.qtdembalagem, a.coddepossepar, a.coddepositante,
a.nroempresa, a.seqendereco, a.qtdembsolicitada, a.qtdembseparada, a.impmapasepar, a.tipespecie, a.nrolote, a.nropedvenda,(b.pesobruto+a.qtdembseparada);

Compartilhar este post


Link para o post
Compartilhar em outros sites

As funcoes rollup e cube fazem agregacoes de valores por coluna, as funcoes analicas permitem somatorios, medias e outros sgregadores de forma mais sofisticada.Pelo passado no #10 creio que a solucao e por uso do sum com over, veja artigos passados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo assim ,

 

select a.seqlote,a.nrocarga,sum(b.pesobruto*a.qtdembseparada)
from mlo_cargaesepara a, mlo_prodembalagem b
where a.seqproduto = b.seqproduto
and a.nroempresa = b.nroempresa
and a.qtdembalagem = b.qtdembalagem
and a.nrocarga = 132124
and a.seqlote = 197
group by a.seqlote,a.nrocarga,rollup (b.pesobruto,a.qtdembalagem)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.