SOMAR ITENS DO BANCO DE DADOS

MARIOANDRADE 22/01/2014 01:34:30
#433371
Meus amigos, para somar um valor total de cada item num banco de dados eu uso uma maneira não muito didática
(eu mesmo desenvolvi), essa maneira consiste em trazer os itens para a listview e somar pela coluna:


[ô]Total Alumínio
LstProdutos.ListItems.Clear
ConnectDB
rs.Open [Ô]Select * from Entrada_Produtos where Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô] [Ô], db, 3, 3
Do Until (rs.EOF)
Set item = LstProdutos.ListItems.Add(, , rs!Codigo)
item.SubItems(1) = [Ô][Ô] & rs!Descricao
item.SubItems(2) = [Ô][Ô] & VBA.Format(rs!Peso_liquido, [Ô]#,##0.00[Ô])
item.SubItems(3) = [Ô][Ô] & VBA.Format(rs!valor, [Ô]#,##0.00[Ô])
item.SubItems(4) = [Ô][Ô] & VBA.Format(rs!Valor_Total, [Ô]#,##0.00[Ô])
item.SubItems(5) = [Ô][Ô] & rs!Data
item.SubItems(6) = [Ô][Ô] & rs!Observacoes
rs.MoveNext
Loop

Set rs = Nothing
db.Close: Set db = Nothing

Dim valorh As Double
Dim valor2h As Currency

For i = 1 To Me.LstProdutos.ListItems.Count
valorh = valorh + CDbl(Me.LstProdutos.ListItems(i).ListSubItems(2))
Next i

For j = 1 To Me.LstProdutos.ListItems.Count
valor2h = valor2h + CDbl(Me.LstProdutos.ListItems(j).ListSubItems(4))
Next j

lblTAluminio.Caption = VBA.Format(valor2h, [Ô]#0.00[Ô])
lblAluminio.Caption = VBA.Format(valorh, [Ô]#0.00[Ô])

[ô]Total Cobre
LstProdutos.ListItems.Clear
ConnectDB
rs.Open [Ô]Select * from Entrada_Produtos where Descricao like [ô][Ô] & Label17.Caption & [Ô]%[ô] [Ô], db, 3, 3
Do Until (rs.EOF)
Set item = LstProdutos.ListItems.Add(, , rs!Codigo)
item.SubItems(1) = [Ô][Ô] & rs!Descricao
item.SubItems(2) = [Ô][Ô] & VBA.Format(rs!Peso_liquido, [Ô]#,##0.00[Ô])
item.SubItems(3) = [Ô][Ô] & VBA.Format(rs!valor, [Ô]#,##0.00[Ô])
item.SubItems(4) = [Ô][Ô] & VBA.Format(rs!Valor_Total, [Ô]#,##0.00[Ô])
item.SubItems(5) = [Ô][Ô] & rs!Data
item.SubItems(6) = [Ô][Ô] & rs!Observacoes
rs.MoveNext
Loop

Set rs = Nothing
db.Close: Set db = Nothing

Dim valori As Double
Dim valor2i As Currency

For i = 1 To Me.LstProdutos.ListItems.Count
valori = valori + CDbl(Me.LstProdutos.ListItems(i).ListSubItems(2))
Next i

For j = 1 To Me.LstProdutos.ListItems.Count
valor2i = valor2i + CDbl(Me.LstProdutos.ListItems(j).ListSubItems(4))
Next j

lblTCobre.Caption = VBA.Format(valor2i, [Ô]#0.00[Ô])
lblCobre.Caption = VBA.Format(valori, [Ô]#0.00[Ô])



Dessa forma se meu banco de dados tiver 200 itens eu terei que carregar e limpar a listvier 200 vezes, então,
qual o jeito mais simples de somar os valores de determinado item do banco de dados?

Desde já agradeço a quem possa ajudar



FILMAN 22/01/2014 01:53:25
#433372
Tente dessa maneira, porém acredito que seja interessante pesquisar um pouco mais sobre QUERY de consulta.

SELECT 
Codigo, Descricao,
SUM(Peso_liquido) AS Peso_liquido,
SUM(Valor) AS Valor,
SUM(Valor_Total) AS Valor_Total
FROM Entrada_Produtos
WHERE Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô][Ô]
GROUP BY Codigo, Descricao


OU

SELECT 
Codigo, Descricao,
SUM(Peso_liquido) AS Peso_liquido,
Valor,
Valor_Total
FROM Entrada_Produtos
WHERE Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô][Ô]
GROUP BY Codigo, Descricao, Valor, Valor_Total



Creio que a primeira se encaixa melhor no que esta querendo.

PS. Não realizei testes, pois estava muito tarde
MARIOANDRADE 22/01/2014 02:38:58
#433373
Citação:

:
Tente dessa maneira, porém acredito que seja interessante pesquisar um pouco mais sobre QUERY de consulta.

SELECT 
Codigo, Descricao,
SUM(Peso_liquido) AS Peso_liquido,
SUM(Valor) AS Valor,
SUM(Valor_Total) AS Valor_Total
FROM Entrada_Produtos
WHERE Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô][Ô]
GROUP BY Codigo, Descricao


OU

SELECT 
Codigo, Descricao,
SUM(Peso_liquido) AS Peso_liquido,
Valor,
Valor_Total
FROM Entrada_Produtos
WHERE Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô][Ô]
GROUP BY Codigo, Descricao, Valor, Valor_Total



Creio que a primeira se encaixa melhor no que esta querendo.

PS. Não realizei testes, pois estava muito tarde




Filman, agradeço muito sua ajuda, porém perdoe a minha ignorância mas, essa função [Ô]SELECT[Ô] vai entrar aonde?
se copiar e colar esse codigo dá erro pois o [Ô]SELECT[Ô] sozinho não é um comando válido no VB6.
FILMAN 22/01/2014 03:07:04
#433374
Bom eu te passei a estrutura SQL você tem que enquadrar onde você enquadra as outras tipo

Essa você troca
rs.Open [Ô]Select * from Entrada_Produtos where Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô] [Ô], db, 3, 3

por essa
rs.Open [Ô]SELECT [Ô] & _
[Ô] Codigo, Descricao, [Ô] & _
[Ô] SUM(Peso_liquido) AS Peso_liquido, [Ô] & _
[Ô] SUM(Valor) AS Valor, [Ô] & _
[Ô] SUM(Valor_Total) AS Valor_Total [Ô] & _
[Ô] FROM Entrada_Produtos [Ô] & _
[Ô] WHERE Descricao like [ô][Ô] & Label16.Caption & [Ô]%[ô][Ô] & _
[Ô] GROUP BY Codigo[Ô], Descricao, db, 3, 3



Tente ai
Tópico encerrado , respostas não são mais permitidas