MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

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

3 participantes

    [Resolvido]Consulta somar últimos 12 meses anteriores

    avatar
    alecardoso
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 15/05/2015

    [Resolvido]Consulta somar últimos 12 meses anteriores Empty [Resolvido]Consulta somar últimos 12 meses anteriores

    Mensagem  alecardoso 5/7/2021, 19:10

    Olá pessoal!   Tem como somar/acumular em uma coluna o valor da Venda dos últimos 12 meses?

    Cenário:  Tenho o valor do serviço do mês JUNHO/2021 (ex. 20.000) e na coluna ao lado, preciso que apareça a soma do serviço de 12 meses passados (05/2021 até 06/2020).

    Estou anexando um banco de exemplo, quem puder me dar uma mão, é a consulta "csVenda"
    Anexos
    [Resolvido]Consulta somar últimos 12 meses anteriores AttachmentSoma12_Anteriores.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (315 Kb) Baixado 8 vez(es)
    scandinavo
    scandinavo
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 896
    Registrado : 11/11/2009

    [Resolvido]Consulta somar últimos 12 meses anteriores Empty Re: [Resolvido]Consulta somar últimos 12 meses anteriores

    Mensagem  scandinavo 6/7/2021, 23:32

    Crie uma consulta usando o select top com os messes e o total .

    E coloque stá consulta na csvendas adicionado o campo com os valores da select  top 
    E manda somar.
    avatar
    alecardoso
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 15/05/2015

    [Resolvido]Consulta somar últimos 12 meses anteriores Empty Re: [Resolvido]Consulta somar últimos 12 meses anteriores

    Mensagem  alecardoso 6/7/2021, 23:54

    Oi! No Banco de exemplo anexado, tem a csVenda. O mais importante é a coluna Competência (que é o mês) a coluna Venda (R$) e a Coluna/fórmula que me falta é a que vai somar as 12 competências anteriores.

    Por exemplo: se estou na linha/registro da competência "06/2021" então a coluna Acumulada deveria pegar a soma de "05/2021 até 06/2020". Mas eu não sei esta fórmula na coluna da consulta.

    Se puder, agradeço desde já, se puder abrir o banco de exemplo, e editar a coluna da soma, para eu aprender como se faz.

    Abraço!
    scandinavo
    scandinavo
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 896
    Registrado : 11/11/2009

    [Resolvido]Consulta somar últimos 12 meses anteriores Empty Re: [Resolvido]Consulta somar últimos 12 meses anteriores

    Mensagem  scandinavo 8/7/2021, 13:47

    o seu caso é mais complexo do que imaginava.
    mas já vi um caso igual resolvido.
    só não consegui achar o post.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Consulta somar últimos 12 meses anteriores Empty Re: [Resolvido]Consulta somar últimos 12 meses anteriores

    Mensagem  Alexandre Neves 11/7/2021, 21:13

    Boa noite
    SELECT tbVenda.*, Format([IdEnti],"0000") & Format([Competencia],"yyyymm") AS ID0, Format([IdEnti],"0000") & "-" & Format([Competencia],"yyyy-mm") AS ID1, (SELECT Sum(VendaBruta) from tbVenda as T WHERE T.Competencia between dateadd('m',-11,tbVenda.Competencia) and tbVenda.Competencia) AS AquiSomaAcumUltimos12meses FROM tbVenda ORDER BY tbVenda.IdEnti, tbVenda.Competencia DESC;


    .................................................................................
    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
    avatar
    alecardoso
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 15/05/2015

    [Resolvido]Consulta somar últimos 12 meses anteriores Empty Re: [Resolvido]Consulta somar últimos 12 meses anteriores

    Mensagem  alecardoso 12/7/2021, 21:41

    Olá Alexandre Neves, scandinavo, obrigado por responderem.

    Alexandre, para pegar os últimos 12 meses (sem pegar o próprio mês corrente), no lugar de "11" ficou assim:
    SELECT tbFat.IdCliente, tbFat.Competencia, tbFat.Venda, (SELECT Sum(Venda) from tbFat as T WHERE T.Competencia between dateadd('m',-12,tbFat.Competencia) and dateadd('m',-1,tbFat.Competencia)) AS Soma12ant
    FROM tbFat
    ORDER BY tbFat.IdCliente, tbFat.Competencia DESC;


    -Vai perceber ao executar a "csVenda" que  estranhamente ela repete valor acumulado a cada uns 18 registros, e coloca 2 em branco, depois repete os mesmos valores;  Uma soma louca...kkkk   Talvez é porque está selecionando registro direto na tabela.

    -Creio que se pegar registro direto na consulta vai ser melhor,  porque na realidade vamos precisar Acumular valores que não tem na tabela, pois são colunas de apoio criadas diretamente na consulta, e, por fim, fazer a soma dessas colunas de apoio para acumular.  Abra a  "csFat" (Faturamento), onde temos:

    ResVenda: [Venda]-[EstornoVenda]
    ResServico: [Servico]-[EstornoServico]
    ResPremio: [Premio]-[EstornoPremio]

    [FAT]= [ResVenda]+[ResVenda]+[ResVenda]

    e por fim:  acumular o Faturamento dos últimos 12 meses na coluna [FatAcum12]

    Os campo em negrito são calculados.  Estou anexando accdb atualizado. Dá uma força aí para eu poder me livrar disso...kkk
    Anexos
    [Resolvido]Consulta somar últimos 12 meses anteriores AttachmentSoma12_AnterioresV2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (72 Kb) Baixado 3 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Consulta somar últimos 12 meses anteriores Empty Re: [Resolvido]Consulta somar últimos 12 meses anteriores

    Mensagem  Alexandre Neves 13/7/2021, 22:00

    Boa noite
    SELECT (SELECT Sum(Venda-EstornoVenda+Servico-EstornoServico+Premio-EstornoPremio) FROM tbFat as T WHERE T.IdCliente=tbFat.IdCliente and Format(T.Competencia,'yyyy-mm') Between Format(dateadd('m',-12,tbFat.Competencia),'yyyy-mm') and Format(dateadd('m',-1,tbFat.Competencia),'yyyy-mm')) AS FatAcum12, [ResVenda]+[ResServico]+[ResPremio] AS FAT, [Venda]-[EstornoVenda] AS ResVenda, [Servico]-[EstornoServico] AS ResServico, [Premio]-[EstornoPremio] AS ResPremio, tbFat.* FROM tbFat ORDER BY tbFat.IdCliente, tbFat.Competencia DESC;


    .................................................................................
    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
    avatar
    alecardoso
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 15/05/2015

    [Resolvido]Consulta somar últimos 12 meses anteriores Empty Re: [Resolvido]Consulta somar últimos 12 meses anteriores

    Mensagem  alecardoso 14/7/2021, 12:22

    Muuiiito obrigado sr. Alexandre Neves!

    Funcionou perfeitamente!

      Data/hora atual: 18/9/2021, 18:01