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]Agrupamento de registros em consultas união

    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Agrupamento de registros em consultas união Empty [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Celso Roberto 1/3/2014, 21:22

    Boa tarde...

    Sou Novato neste forum, mas digo que já li vários topicos e aprendi muito, estou aprendendo e vou aprender ainda mais com as informações postadas aqui.
    Estou iniciando o meu aprendizado e desde já agradeço a todos pelas informações e sugestões.  

    Mas vamos a minha dúvida!!

    Nesta consulta união abaixo como agrupar os registros com mesma data em unico registro?

    SELECT [Contas para Recebimento].DataDoLançto, Sum([Contas para Recebimento].ValorDoLançto) AS Lançtos, (SELECT Sum(Nz(ValorDoLançto))     FROM  [Contas para Recebimento] AS EXTR     WHERE EXTR.DataDoLançto<=  [Contas para Recebimento].DataDoLançto) AS LançtoAcum, 0 AS RecebtoCA, 0 AS RecebtoCAAcum
    FROM [Contas para Recebimento]
    GROUP BY DataDoLançto;

    UNION SELECT Cartões_Movimentação.DataDoMovimento, 0, 0, Sum([Cartões_Movimentação].Entrada), (SELECT Sum(Nz(Entrada))     FROM  [Cartões_Movimentação] AS EXTR     WHERE EXTR.DataDoMovimento<=  [Cartões_Movimentação].DataDoMovimento) AS RecebtoCAAcum
    FROM [Cartões_Movimentação]
    GROUP BY DataDoMovimento;

    Criando Consulta Seleção com a consulta união tenho estes resultados

    DataDoLançto      Lançtos              LançtoAcum    RecebtoCA    RecebtoCAAcum
    20/02/2014      R$ 5.000,00        R$ 5.000,00      R$ 0,00                R$ 0,00
    20/02/2014      R$ 0,00               R$ 5.000,00      R$ 2.000,00         R$ 2.000,00        
    28/02/2014      R$ 6.000,00        R$ 11.000,00     R$ 0,00               R$ 2.000,00      
    28/02/2014       R$ 0,00              R$ 11.000,00     R$ 2.000,00         R$ 4.000,00

    Gostaria que ficasse assim!!

    DataDoLançto Lançtos              LançtoAcum    RecebtoCA        RecebtoCAAcum
    20/02/2014 R$ 5.000,00 R$ 5.000,00              R$ 2.000,00         R$ 2.000,00        
    28/02/2014 R$ 6.000,00 R$ 11.000,00             R$ 2.000,00        R$ 4.000,00      



    No aguardo de Sugestões
    Abraços
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Alexandre Neves 2/3/2014, 09:38

    Bom dia, e bem-vindo ao fórum
    SELECT Cartões_Movimentação.DataDoMovimento as DataDoLançto, (SELECT Sum(ValorDoLançto) FROM [Contas para Recebimento] WHERE DataDoLançto=Cartões_Movimentação.DataDoMovimento) AS Lançtos, Sum([Cartões_Movimentação].Entrada), (SELECT Sum(Nz(Entrada)) FROM  [Cartões_Movimentação] AS EXTR WHERE EXTR.DataDoMovimento<=  [Cartões_Movimentação].DataDoMovimento) AS RecebtoCAAcum
    FROM [Cartões_Movimentação]
    GROUP BY DataDoMovimento;


    .................................................................................
    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
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Celso Roberto 2/3/2014, 15:03

    Bom dia Alexandre e obrigado pelo retorno....

    No seu exemplo não esta acumulando os lançtos e não consegui incluir, me ajude!!!
    Mas em relação a soma em consulta tipo seleção tenho uma duvida relativo ao tempo de execução do bd, pode ficar lento ok.
    Com a consulta união o tempo de execução é bem mais rápido, mas não achei como agrupar os registros.

    Abraços e aguardo retorno  
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Alexandre Neves 2/3/2014, 15:05

    Estranho o tempo ser maior do que na consulta união. A consulta união pressupõe criar duas ou mais consultas e uni-las. Ora, a união demorará sempre mais que cada consulta em separado.
    Se criar consulta união terá sempre mais que uma linha em cada data, por isso é que é união (entre as duas consultas)


    .................................................................................
    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
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Celso Roberto 2/3/2014, 15:17

    Digo em relação e efetuar soma e efetuar acumulado tipo  Sum([Cartões_Movimentação].Entrada), (SELECT Sum(Nz(Entrada)) FROM  [Cartões_Movimentação] AS EXTR WHERE EXTR.DataDoMovimento<=  [Cartões_Movimentação].DataDoMovimento) AS RecebtoCAAcum

    Em testes que estou realizando na união o tempo é mais rápido
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Alexandre Neves 2/3/2014, 15:18

    Disponibilize dados significativos para fazer teste


    .................................................................................
    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
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Celso Roberto 2/3/2014, 15:30

    Ok. Vou simplificar um bd com dados para testes e te envio.
    Mas aguardo a tua ajuda no seu exemplo para acumular campo Lançto, ele pode resolver meu problema
    Abraços
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Celso Roberto 4/3/2014, 03:41

    Bom dia Alexandre

    Como você tinha solicitado segue bd simplificado  para testes

    Voce verá que tem duas consulta união com tempo de respostas diferentes

    Uma é consulta união unindo tabelas ou consultas,

    A outra esta unindo tabela ou consultas e somando acumulado os valores.

    Criei duas consulta usando estas consultas união    

    Para simplificar, o ideal seria que a  Consulta CsUsandoUnFluxoReceitasDespesasSomandoAcumulado(mais rápida) ficasse com mesmo resultado da consulta CsUsandoUnFluxoReceitasDespesasDiarios_paraSomarAcumulando(mais lenta), mas sem alterar velocidade ou ver também se não estou fazendo algo errado.

    Abraços e Aguardo retornos


    PS: como disse sou novato no forum gostaria de saber oque significa o sinal positivo em verde quando voce envia respostas?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Alexandre Neves 4/3/2014, 23:14

    Boa noite,
    As consultas são recursivas e com nomes longos e emaranhados.
    Comecei a limpar mas perdi-me a meio
    Veja onde cheguei e pode continuar ou esclareça o que deve ser colocado a seguir, pois será mais fácil para si que está familiarizado com o assunto do que eu estar a dissecar tudo.
    SELECT DISTINCT DataDoLançto, (SELECT Sum(ValorDoLançto) FROM tblContasRecebimento AS T1 WHERE T1.DataDoLançto=CP.DataDoLançto) AS ValorDoLançtos, (SELECT Sum(ValorDoLançto) FROM tblContasRecebimento AS T2 WHERE T2.DataDoLançto<=CP.DataDoLançto) AS LançtoAcum, (SELECT Sum(ValorRecebto) FROM CsContasRecebimentos AS T3 WHERE T3.DataDeRecebto=CP.DataDoLançto) AS ValorRecebto, (SELECT Sum(ValorRecebto) FROM CsContasRecebimentos AS T4 WHERE T4.DataDeRecebto<=CP.DataDoLançto) AS RecebtoAcum, LançtoAcum-RecebtoAcum AS ValorAReceber, (SELECT Sum(ValorDoCheque) FROM CsChequesRecebidos AS T5 WHERE T5.DataDaEmissão=CP.DataDoLançto) AS ChequesRecebidos, (SELECT Sum(ValorDoCheque) FROM CsChequesRecebidos AS T6 WHERE T6.DataDaEmissão<=CP.DataDoLançto) AS ChequesAcum, (SELECT Sum(ValorDoCheque) FROM CsChequesRecebidos AS T7 WHERE T7.DataDaCompensação=CP.DataDoLançto) AS CHsRecebidosComp, (SELECT Sum(ValorDoCheque) FROM CsChequesRecebidos AS T8 WHERE T8.DataDaCompensação<=CP.DataDoLançto) AS CHsComp, CHsComp-CHsRecebidosComp AS ChuequesCompensar
    FROM (SELECT DataDoLançto FROM tblContasRecebimento
    UNION SELECT DataDeRecebto FROM CsContasRecebimentos WHERE DataDeRecebto>=#1/1/2007# AND ValorRecebto>0
    UNION SELECT DataDaEmissão FROM tblChequesRecebidos
    UNION SELECT DataDaCompensação FROM CsChequesRecebidos WHERE DataDaCompensação>=#1/1/2007#
    UNION SELECT DataDoLançto FROM tblContasPagamento
    UNION SELECT DataDoPagto FROM CsContasPagamentos WHERE DataDoPagto>=#1/1/2007# AND ValorPagto>0
    UNION SELECT DataDaEmissão FROM tblChequesEmitidos
    UNION SELECT DataDaCompensação FROM CsChequesEmitidos WHERE DataDaCompensação>=#1/1/2007#) AS CP
    ORDER BY DataDoLançto;
    (substitui as consultas existentes)


    .................................................................................
    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
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Celso Roberto 5/3/2014, 00:19

    Boa noite Alexandre Neves

    Obrigado pelo retorno, vou continuar de onde voce parou e volto com resultado.
    mas acredito que voce encontrou a solução.

    Como sou novato neste forum me explique oque significa o sinal de positivo em verde quando voce manda resposta...

    Abraços

    Celso Roberto
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Agrupamento de registros em consultas união Empty Agrupamento de registros em consultas união

    Mensagem  toyebom 5/3/2014, 01:06

    O sinal positivo e o negativo é para votares na resposta caso queiras, é coisas do forum.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Celso Roberto 5/3/2014, 15:32

    Bom Dia a todos

    Obrigado toyebom pela resposta e se são coisas do forum então vamos acatar.

    Grande Alexandre Neves trago novidades, continuei a sua lógica e concordo em relação aos nomes é que este bd já existia e não alterei os nomes.
    Mas te digo que ficou ótimo o resultado e antes de dar por resolvido gostaria de saber se posso trocar o nome do tópico para " Soma acumulada com várias consultas " e também postar o bd atualizado com a solução criada por voce para que outros com a mesma dúvida possa ver.

    Se for possível me resuma a lógica aplicada para eu ao invés de só copiar queria tambem entender.

    Abraços e aguardo retorno

    Celso Roberto


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Alexandre Neves 5/3/2014, 19:36

    Boa noite, Celso
    1 - Pode alterar o título, mas parece-me mais adequado o que está: fala em consulta união com agrupamento
    2 - Sobre os nomes dos campos na consulta, pode alterar colocando a cláusula AS (campoX as NovoNome)
    3 - Construção da consulta
    3.1. - Criei consulta das datas das tabelas e consultas envolvidas
    3.2. - como a união provocava duplicações, criei consulta de datas não duplicadas (funciona como 1ª coluna da consulta final)
    3.3. - criei 2ª coluna da consulta com o SQL adequado, colocando as condições de filtro e de relacionamento da data com a 1ª coluna
    3.4. - criei 3ª coluna da consulta com o SQL adequado, colocando as condições de filtro e de relacionamento da data com a 1ª coluna
    e assim sucessivamente

    Abraço,
    Alexandre


    .................................................................................
    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
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Celso Roberto 6/3/2014, 14:26

    Bom dia Alexandre Neves

    Obrigado pela explicação e a sua solução aplicada foi muito boa, resolveu o problema da lentidão em comparado com a existente.

    posso anexar o bd atualizado?
    aguardo retorno para dar como "resolvido"

    abraços

    celso Roberto


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Alexandre Neves 6/3/2014, 17:24

    Boa tarde, Celso
    Claro que pode
    Abraço


    .................................................................................
    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
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Celso Roberto 6/3/2014, 18:28

    Ok.

    segue bd com a sua sua solução

    e Obrigado pela ajuda.


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Conteúdo patrocinado


    [Resolvido]Agrupamento de registros em consultas união Empty Re: [Resolvido]Agrupamento de registros em consultas união

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/11/2024, 02:20