CONTAGEM DE ESTOQUE DE UM DETERMINADO PRODUTO..

MOREIRA 13/03/2015 18:42:31
#445214

somar o estoque de um determinda produto

apanhando com esse query.
o que há de errado.. ?

banco de dados mysql



      Set Rst = New ADODB.Recordset
Sql = [Ô]Select (SELECT IFNULL(SUM(QtdeLancto), 0) from tb_produtoslancto WHERE (ds_TipoLancto = [ô]E[ô])) - (SELECT IFNULL(SUM(QtdeLancto), 0) from tb_produtoslancto WHERE (ds_TipoLancto = [ô]S[ô])) As QuantEstoque from tb_produtoslancto WHERE CodigoBarra =[ô][Ô] & txtCodigoBarra.Text & [Ô][ô][Ô]
Rst.Open Sql, Conexao, 3
If Rst.RecordCount > 0 Then
lblQuantEstoque.Caption = Format(Rst!QuantEstoque, [Ô]###,##0.00[Ô])
End If



nesse caso acima esta contando todos os produto da tabela.
MOREIRA 13/03/2015 21:42:12
#445220
olá, alguem ?
MOREIRA 14/03/2015 01:11:42
#445223
Manutenção de produtos entrada e saída...
Pessoal, tecnicamente é necessário um campo para quantidade de entrada e outro para saída.

se tiver apenas um campo para essa finalidade e um campo informando se é entrada ou saída já funciona.. ?
grato pelas dicasa..
FFCOUTO 14/03/2015 22:19:41
#445244
Moreira, você presica informar o código do produto nas 2 subqueries.

Set Rst = New ADODB.Recordset
Sql = [Ô]Select (SELECT IFNULL(SUM(QtdeLancto), 0) from tb_produtoslancto WHERE (ds_TipoLancto = [ô]E[ô]) AND (CodigoBarra = [ô][Ô] & txtCodigoBarra.Text & [Ô][ô][Ô])) - (SELECT IFNULL(SUM(QtdeLancto), 0) from tb_produtoslancto WHERE (ds_TipoLancto = [ô]S[ô]) AND (CodigoBarra =[ô][Ô] & txtCodigoBarra.Text & [Ô][ô][Ô])) As QuantEstoque

Rst.Open Sql, Conexao, 3
If Rst.RecordCount > 0 Then
lblQuantEstoque.Caption = Format(Rst!QuantEstoque, [Ô]###,##0.00[Ô])
End If
MOREIRA 15/03/2015 00:09:01
#445247
olá.. algo errado nos parênteses no código do produto..

AND (CodigoBarra = [ô][Ô] & txtCodigoBarra.Text & [Ô][ô][Ô]))

error...
nao finaliza o fim da declaração...

FOXMAN 15/03/2015 18:00:45
#445251
Resposta escolhida
Moreira, precisa reestruturar seu banco/tabelas, assim como os campos.

Citação:

Select (SELECT IFNULL(SUM(QtdeLancto), 0) from tb_produtoslancto WHERE (ds_TipoLancto = [ô]E[ô])) - (SELECT IFNULL(SUM(QtdeLancto), 0) from tb_produtoslancto WHERE (ds_TipoLancto = [ô]S[ô])) As QuantEstoque from tb_produtoslancto WHERE CodigoBarra =[ô][Ô] & txtCodigoBarra.Text & [Ô][ô][Ô]




Essa sua query deveria ser somente assim :

Select SUM(QtdeLancto) as QuantEstoque from tb_produtoslancto WHERE CodigoBarra =[ô][Ô] & txtCodigoBarra.Text & [Ô] [ô] Group by CodigoBarra [Ô]


No entanto para isso, se faz necessário que o campo QtdeLancto receba valores negativos para vendas e positivos para compras.
Desta forma nem seria necessário o campo TipoLancto, necessitando apenas de um Sum(nomedocampo).

Neste caso, para saber os valores de entrada(compras) basta colocar na cláusula where a comparação onde QtdeLancto > 0 ou para Saidas(Vendas) QtdeLancto < 0 agrupando ambos por código de barras.

MOREIRA 15/03/2015 21:40:57
#445254
FOXMAN, veja como está minha tabela, como você havia falado acima. o que devo melhorar ?



assim está minha estrutura,

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