SOMAR VALORES DIFERENTES

ADILSOO 25/08/2012 20:10:39
#408657
Boas gente, blz? bom, é o seguinte, to com um problemão, eu tenho uma tabela com qtdeproduto, valor produto, o valor produto, pode variar, sendo assim, eu preciso fazer com que o VB, some por exemplo, passe uma varredura no banco e veja, por exemplo...

QtdeProd | ValorProd
--------------------------------------
2 | 10,00
3 | 15,00
2 | 10,00

Preciso somar quantos produtos foram vendidos á 10,00 e quantos produtos foram vendidos á 15,00, e me retornar o valor

4 Produtos á 10,00
3 Produtos á 15,00

Eu tentei fazer com um Loop, não sei se esse é o método certo, no primeiro valor eu consegui, que ele verifica o primeiro e sai somando quantos estão lá, más aí eu me embananei do segundo pra frente, estou tentando aqui, se conseguir algo mais concreto posto pra gente discutir sobre, mas por enquanto, alguém me ajuda por favor, obrigado.
ADILSOO 25/08/2012 20:36:05
#408658
Gente, matutando aqui, consegui isso, até que funcionou, mas vou ter que fazer isso com cada produto e deixar reservado uns 5 valores, creio que mais que isso não vá ter, mas foi isso que eu bolei aqui, será que tem outro meio mais simples?

 DATAINI = Format(txtdtini.Text, [Ô]YYYY/MM/DD[Ô])
DATAFIN = Format(txtdtfin.Text, [Ô]YYYY/MM/DD[Ô])

[ô]************************************* (Primeiro valor Bag) *****************************************************************
sSQL = [Ô]SELECT * FROM lancamentofuncionario WHERE dtlanc BETWEEN [ô][Ô] & DATAINI & [Ô][ô] AND [ô][Ô] & DATAFIN & [Ô][ô][Ô]
Set rs1 = Conexao.Execute(sSQL)
[ô]-------------------------------------Soma Valor 1---------------------------------------------------------------------------
vSomar1 = rs1!valorbag
[ô]----------------------------------------------------------------------------------------------------------------------------
Do While Not rs1.EOF = True
If rs1!valorbag = vSomar1 Then
QTDE = QTDE + rs1!bag
List1.AddItem rs1!dtlanc
List2.AddItem rs1!valorbag
End If
rs1.MoveNext
Loop
List3.AddItem QTDE & [Ô] Bags de [Ô] & vSomar1
QTDE = 0
[ô]============================================================================================================================
[ô]************************************* (Segundo valor Bag) *****************************************************************
sSQL = [Ô]SELECT * FROM lancamentofuncionario WHERE dtlanc BETWEEN [ô][Ô] & DATAINI & [Ô][ô] AND [ô][Ô] & DATAFIN & [Ô][ô][Ô]
Set rs2 = Conexao.Execute(sSQL)
[ô]-------------------------------------Soma Valor 1---------------------------------------------------------------------------
Do While Not rs2.EOF = True
If Not vSomar1 = rs2!valorbag Then
vSomar2 = rs2!valorbag
Exit Do
End If
rs2.MoveNext
Loop
[ô]----------------------------------------------------------------------------------------------------------------------------
sSQL = [Ô]SELECT * FROM lancamentofuncionario WHERE dtlanc BETWEEN [ô][Ô] & DATAINI & [Ô][ô] AND [ô][Ô] & DATAFIN & [Ô][ô][Ô]
Set rs2 = Conexao.Execute(sSQL)
[ô]................................
Do While Not rs2.EOF = True
If rs2!valorbag = vSomar2 Then
QTDE = QTDE + rs2!bag
List1.AddItem rs2!dtlanc
List2.AddItem rs2!valorbag
End If
rs2.MoveNext
Loop
List3.AddItem QTDE & [Ô] Bags de [Ô] & vSomar2
QTDE = 0
[ô]============================================================================================================================
JABA 25/08/2012 20:41:58
#408659
Resposta escolhida
Tente o seguinte: Select SUM (QtdeProd * ValorProd) as ValorTotal FROM Tabela Where ValorProd = 10.00[Ô]

vlw
JABA 25/08/2012 20:47:15
#408660
OU asssim: Select SUM (QtdeProd * ValorProd) as ValorTotal, ValorProd FROM Tabela Group By ValorProd[Ô]

Testa ai e nos dê uma posicão.

vlw
ADILSOO 25/08/2012 20:51:27
#408661
Sim, mas vai QtdeProd era só um exemplo, no real mesmo, vai ter varios produtos, então não posso agrupar por valorprod
JABA 25/08/2012 22:24:22
#408664
Coloque ai a estrutura de sua tabela para analisarmos.

vlw
LLAIA 26/08/2012 09:49:39
#408665
Citação:

:
Sim, mas vai QtdeProd era só um exemplo, no real mesmo, vai ter varios produtos, então não posso agrupar por valorprod



Coloque o código do produto na query e agrupe por ele também:

Select SUM (QtdeProd  *  ValorProd) as ValorTotal, ValorProd, IdProduto  FROM Tabela Group By ValorProd, IdProduto[Ô] 
ADILSOO 26/08/2012 10:06:57
#408667
Acho que eu não expliquei direito, bom, oque eu consegui é perfeito, só acho que existe outra forma pra se fazer isso, eu adicionei 2 listview, esse é o resultado perfeito.
JABA 26/08/2012 18:48:56
#408674
QtdeProd | ValorProd
--------------------------------------
2 | 10,00
3 | 15,00
2 | 10,00

De acordo com os dados acima, essa consulta --> SELECT SUM(QtdeProd) as Quantidade, ValorProd FROM Tabela Group By ValorProd está retornando os seguintes dados:

QtdeProd | ValorProd
--------------------------------------
4 | 10,00
3 | 15,00

vlw
ADILSOO 26/08/2012 18:57:39
#408675
Mas para adicionar no grid seria como? Porque não entendi direito oque você disse...

Como seria pra adicionar no Grid?
JABA 26/08/2012 19:33:11
#408679
é algo parecido com isso aqui:

SQL = [Ô]SELECT SUM(QtdeProd) as Quantidade, ValorProd FROM Tabela Group By ValorProd[ô][Ô]
Set rs = Conexao.Execute(sSQL)

Do While Not rs.EOF = True
List1.AddItem rs!Quantidade & [Ô]/[Ô] & rs!ValorProd
rs.MoveNext
Loop

Como você está fazendo para preencer ai? È a mesma coisa
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas