AJUDA COM SUM

NILTON.VIANNA 16/07/2016 08:44:17
#464842
Bom dia, estou tentando fazer um busca com as seguintes situação

tenho a tabela ESTOQUE contendo os seguinte itens

ProdutoID Movimento Quantidade
23 Entrada 200
23 Saídas 50

no resultado teria que sair assim : 150

na minha busca usando este select esta saindo assim 200
Dim cmd As New FbCommand([Ô]SELECT * FROM Cad_Estoque WHERE MOVIMENTO = [ô]ENTRADA[ô] AND (ProdutoID = [ô]23[ô])[Ô], clConexao.abreConnexao)

Grato

SINCLAIR 16/07/2016 08:55:29
#464843
Colega NILTON_VIANNA,

Seria algo mais ou menos assim (não tive como testar aqui):

Select Query01.Qtd_Ent - Query01.Qtd_Sai as Saldo from
( (SELECT sum(Quantidade) as Qtd_Ent FROM Cad_Estoque WHERE MOVIMENTO = [ô]ENTRADA[ô] AND (ProdutoID = [ô]23[ô])) ,
(SELECT sum(Quantidade) as Qtd_Sai FROM Cad_Estoque WHERE MOVIMENTO = [ô]SAIDAS[ô] AND (ProdutoID = [ô]23[ô]))
) as Query01


Tudo de bom.


NILTON.VIANNA 16/07/2016 09:04:37
#464844
Colega estou usando o FIREBIRD
OMAR2011 16/07/2016 09:31:20
#464845
Banco,não importa muito.Tipo de campo, sim.
Mais ou menos assim.
SELECT Entrada,saida,Sum(entrada) - Sum(saida) as Saldo FROM Cad_Estoque WHERE MOVIMENTO =[ô]ENTRADA[ô] And ProdutoID=1 Group by entrada,saida
NILTON.VIANNA 16/07/2016 10:04:04
#464846
entrada e saidas são dados ??
SINCLAIR 16/07/2016 10:57:30
#464847
Colega OMAR2011,

Não entendi a sua query, porque ela soma as saídas, mas não faz referência no Where.

Citação:

SELECT Entrada,saida,Sum(entrada) - Sum(saida) as Saldo FROM Cad_Estoque WHERE MOVIMENTO =[ô]ENTRADA[ô] And ProdutoID=1 Group by entrada,saida



Também vale lembrar que o campo do nosso colega é apenas um (quantidade) tanto para as saídas quanto para as entradas.

De qualquer forma, agora estou distante do PC de programação, não teria como testar para o nosso colega NILTON_VIANNA.


Colega NILTON_VIANNA,

A query SQL está em formato básico SQL92, não fará diferença se SQL Server, PostGreSQL ou Firebird. A estrutura que te passei deverá funcionar.

Cabe você colocar os comandos de abertura e fechamento de banco. Algo como:

Dim cmd As New FbCommand([Ô]Select Query01.Qtd_Ent - Query01.Qtd_Sai as Saldo from
( (SELECT sum(Quantidade) as Qtd_Ent FROM Cad_Estoque WHERE MOVIMENTO = [ô]ENTRADA[ô] AND (ProdutoID = [ô]23[ô])) ,
(SELECT sum(Quantidade) as Qtd_Sai FROM Cad_Estoque WHERE MOVIMENTO = [ô]SAIDAS[ô] AND (ProdutoID = [ô]23[ô]))
) as Query01, clConexao.abreConnexao)


Tudo de bom.
Tópico encerrado , respostas não são mais permitidas