MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Custo médio ponderado

    cafpr
    cafpr
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 973
    Registrado : 08/02/2011

    [Resolvido]Custo médio ponderado Empty [Resolvido]Custo médio ponderado

    Mensagem  cafpr em 1/8/2017, 20:15

    Boa tarde.
    Estou com dificuldade em um calculo

    Havendo registro de entrada e saida o CMP é calculado o que é correto, mas se haver somente entrada duas consultas não fazem o calclo

    e preciso que faça.

    as consultas são

    Cs_EstoqueAtual e automaticamente fara a cs_EstoqueFinanceiro

    Agradeço e muito ajuda par resolver.


    https://www.dropbox.com/s/71qmvevu9og94bo/estoque%20certo%20ATUAL.rar?dl=0
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7746
    Registrado : 05/11/2009

    [Resolvido]Custo médio ponderado Empty Re: [Resolvido]Custo médio ponderado

    Mensagem  Alexandre Neves em 1/8/2017, 22:30

    Boa noite,
    As consulta de saldos exigem sempre muita perícia, conforme forem montadas as tabelas de origem dos dados

    veja se funciona nas várias situações possíveis
    SELECT tbl_produto.Idproduto, tbl_produto.Produto, cs_SaidaSintetica.unidade, cs_EntradaSintetica.SomaDeqtdrecebida AS Entrada, cs_SaidaSintetica.SomaDeqtdSaida AS Saida, (Nz([Entrada])-(Nz([saida]))) AS estoque
    FROM (tbl_produto INNER JOIN cs_EntradaSintetica ON tbl_produto.IdProduto = cs_EntradaSintetica.IdProduto) LEFT JOIN cs_SaidaSintetica ON tbl_produto.IdProduto = cs_SaidaSintetica.IdProduto
    ORDER BY tbl_produto.Produto;

    SELECT tbl_produto.Idproduto, tbl_produto.Produto, tbl_produto.unidade, cs_EntradaSintetica.SomaDeqtdrecebida AS QEntrada, cs_EntradaSintetica.[R$TotalEntrada], cs_SaidaSintetica.SomaDeqtdSaida AS QSaida, cs_SaidaSintetica.Total AS [R$TotaSaida], cs_EstoqueAtual.estoque, Format([R$TotalEntrada]-[R$TotaSaida],"#.00") AS [R$Estoque], Format([R$Estoque]/[estoque],"#.000000") AS CMP
    FROM ((tbl_produto INNER JOIN cs_EntradaSintetica ON tbl_produto.IdProduto = cs_EntradaSintetica.IdProduto) LEFT JOIN cs_SaidaSintetica ON tbl_produto.IdProduto = cs_SaidaSintetica.IdProduto) LEFT JOIN cs_EstoqueAtual ON tbl_produto.IdProduto = cs_EstoqueAtual.Idproduto
    GROUP BY tbl_produto.Idproduto, tbl_produto.Produto, tbl_produto.unidade, cs_EntradaSintetica.SomaDeqtdrecebida, cs_EntradaSintetica.[R$TotalEntrada], cs_SaidaSintetica.SomaDeqtdSaida, cs_SaidaSintetica.Total, cs_EstoqueAtual.estoque
    ORDER BY tbl_produto.Produto;



    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    cafpr
    cafpr
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 973
    Registrado : 08/02/2011

    [Resolvido]Custo médio ponderado Empty Re: [Resolvido]Custo médio ponderado

    Mensagem  cafpr em 2/8/2017, 00:08

    Boa noite colega Alexandre.

    No seu código somente acrescentar o nz onde efetua o calculo do CMP, estava retornando erro

    Format(Nz([R$Estoque])/Nz([Estoque]),"#.000000") AS CMP
    FROM tbl_produto
    ORDER BY tbl_produto.Produto;

    e assim efetua todos os calculos mesmo não havendo saida.

    Alexandre eu encontrei outra maneira de efetuar os calculos sem o registro da saida.
    Assim:
    Eliminei a consulta Cs_EstoqueFinanceiro e realizei todos os cálculos no no cs_estoqueatual.

    ficou assim:

    SELECT tbl_produto.Idproduto, tbl_produto.Produto, tbl_produto.unidade, IIf(IsNull([IdProduto]),0,DSum("[QuantEntrada]","tbl_EntradaDetalhe","[IdProduto]=" & [IdProduto])) AS QEntrada, IIf(IsNull([IdProduto]),0,DSum("[SubTotalE]","tbl_EntradaDetalhe","[IdProduto]=" & [IdProduto])) AS [R$Entrada], IIf(IsNull([IdProduto]),0,DSum("[QuantSaida]","tbl_SaidaDetalhe","[IdProduto]=" & [IdProduto])) AS QSaida, IIf(IsNull([IdProduto]),0,DSum("[QuantSaida]","tbl_SaidaDetalhe","[IdProduto]=" & [IdProduto])) AS [R$Saida], Nz([QEntrada])-Nz([QSaida]) AS Estoque, Nz([R$Entrada])-Nz([R$Saida]) AS [R$Estoque], Nz([R$Estoque])/Nz([Estoque]) AS CMP
    FROM tbl_produto
    ORDER BY tbl_produto.Produto;

    A formatação dos campos fiz no form.


    Enfim, muito obrigado Alexandre Neves. pela sua ajuda.

    Estou melhorando o sistema com ajuda do forum e quando finalizar irei disponibilizar no repositorio.
    cafpr
    cafpr
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 973
    Registrado : 08/02/2011

    [Resolvido]Custo médio ponderado Empty Re: [Resolvido]Custo médio ponderado

    Mensagem  cafpr em 2/8/2017, 00:11

    Opa...resolvido

      Data/hora atual: 27/10/2020, 02:49