FAZER UM SLECT SUM E ORDENAR POR GRUPO

ADILSOO 19/12/2015 21:53:51
#455338
Boa noite pessoal!
Estava quebrando a cabeça aqui e não consegui resolver, preciso fazer um SELECT SUM e ordenar pelo código. Deixa eu explicar...
Tenho uma tabela com vários CÓDIGOS que se repetem, e a frente de cada um o campo NECESSIDADE e ENTREGOU, o que eu preciso?

Tabela
------------------------------------------------------
Código Necessidade Entregou
1 100 50
2 200 100
1 100 50


e preciso que retorne os valores para eu colocar em um grid assim...

Código Necessidade Entregou
1 200 100
2 200 100

Ou seja, somar, e agrupar por código.

Eu estava vendo algumas coisas na net sobre SLECT SUM ORDER BY GROUP, mas confundiu ainda mais...

se alguém puder ajudar ficarei agradecido, um muito obrigado.
Abraços.
JABA 19/12/2015 22:12:23
#455339
Resposta escolhida
Select Codigo, Sum(Necessidade) as Necessidade, Sum(Entregou) as Entregou From Tabela Group By Codigo, Necessidade, Entregou

ADILSOO 19/12/2015 22:21:18
#455340
Obrigado pela resposta!

Eu ainda estou iniciando e entendi o select, mas depois, como seria pra eu pegar o resultado?
Eu tentei assim, mas não resultou nada...


sSQL = [Ô]Select codprod, Sum(necessidade), Sum(entregou) From tabtempprodfaltantes Group By codprod, necessidade, entregou[Ô]
Set rs = Conexao.Execute(sSQL)

NomearGrid

Do While Not rs.EOF = True
gridfaltantes.AddItem [Ô][Ô] & vbTab & rs!codprod & vbTab & rs!necessidade & vbTab & rs!entregou
rs.MoveNext
Loop

JABA 19/12/2015 22:30:07
#455341
Faltou colocar um apelido para os campos. Tente assim:

sSQL = [Ô]Select codprod, Sum(Necessidade) [txt-color=#e80000]as necessidade[/txt-color], Sum(Entregou) [txt-color=#e80000]as entregou[/txt-color] From tabtempprodfaltantes Group By codprod, necessidade, entregou[Ô]

Set rs = Conexao.Execute(sSQL)

NomearGrid

Do While Not rs.EOF = True
gridfaltantes.AddItem [Ô][Ô] & vbTab & rs!codprod & vbTab & rs!necessidade & vbTab & rs!entregou
rs.MoveNext
Loop

ADILSOO 19/12/2015 22:51:45
#455342
Deu certo...
Só fiz uma modificação ali na Group By...

 sSQL = [Ô]Select codprod, Sum(necessidade) as necessidade, Sum(entregou) as entregou From tabtempprodfaltantes Group By codprod[Ô]
Set rs = Conexao.Execute(sSQL)

Do While Not rs.EOF = True
sSQL = [Ô]SELECT * FROM tabcadmateriais WHERE codmaterial = [ô][Ô] & rs!codprod & [Ô][ô][Ô]
Set rs1 = Conexao.Execute(sSQL)
gridfaltantes.AddItem [Ô][Ô] & vbTab & rs!codprod & vbTab & rs1!nomematerial & vbTab & Format(rs!necessidade, [Ô]0.000[Ô]) & vbTab & Format(rs!entregou, [Ô]0.000[Ô]) & vbTab & Format(rs!necessidade - rs!entregou, [Ô]0.000[Ô])
rs.MoveNext
Loop


Valeu pela ajuda..
Abraços!!!
JABA 19/12/2015 22:55:44
#455343
Não deixe de encerrar o tópico. Vlw
ADILSOO 19/12/2015 22:57:32
#455344
A sim, sem problemas, só vou ver o código melhor depois, pois alguns valores deram negativos, achei estranho, mas por hoje chega, hehe.
Amanhã verifico, até agora, um muito obrigado.
Boa noite.
Tópico encerrado , respostas não são mais permitidas