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]Fluxo de Caixa com duas tabelas não relacionadas

    avatar
    pbbsb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/08/2013

    [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas Empty [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  pbbsb 11/9/2014, 19:32

    Boa tarde senhores mestres. Talvez o tema seja recorrente, mas fiz uma busca nos tópicos, e o que achei relacionado ou próximo, não retornou o resultado esperado.
    Tenho em meu BD duas tabelas, uma referente a entradas financeiras e outra referente a saídas financeiras. As duas tabelas não tem relacionamento.
    Tanto a tabela de entrada registra os valores recebidos ou programados para receber e a data no formato dd/mm/aaaa quanto a tabela de saídas registra os valores pagos ou programados para pagar com a data no mesmo formato.
    Estas tabelas já existem e tem algumas centenas de registros.
    Quero criar uma consulta via SQL ou código VBA para montar um fluxo de caixa com 4 colunas: Data - Entradas - Saídas - Saldo
    Eventualmente haverá data em que haverá entrada mas não haverá saídas e vice versa.
    Tentei a instrução abaixo tomada de um tópico mas somente retornou a primeira instrução.

    SELECT DataVencimento,ValorDaParcela
    FROM [Detalhes da Fatura]

    UNION

    SELECT DataVencimento,ValorParcela
    FROM [Detalhes do Pagamento]  

    Se puderem me ajudar ou indicar um tópico já relacionado para eu testar ficaria agradecido.
    LiveBrain
    LiveBrain
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 15/05/2011

    [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas Empty Re: [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  LiveBrain 11/9/2014, 19:57

    Eu faria assim amigo,

    Altere sua SQL da Union conforme abaixo:

    Código:
    SELECT DataVencimento,ValorDaParcela, "Fatura" as Origem
    FROM [Detalhes da Fatura]

    UNION

    SELECT DataVencimento,ValorParcela, "Pagamento" as Origem
    FROM [Detalhes do Pagamento]  

    Depois crie uma consulta de Referência Cruzada, use como base sua Union e parametrize conforme abaixo

    DataVencimento como Linha (Agrupado por)
    Origem como Titulo de Coluna (Agrupado po)
    ValorParcela como Valor (Soma)

    e por fim crie uma outra consulta e coloque como base essa de referencia cruzada pois assim você consegue realizar o cálculo Entrada - Saídas


    .................................................................................
    Abraços

    Live Brain Tutoriais

    "Fraca é a pessoa que não conhece a força que possui nos amigos"
    avatar
    pbbsb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/08/2013

    [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas Empty Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  pbbsb 12/9/2014, 18:19

    Obrigado pelo retorno LiveBrain.
    Fiz de acordo com o sugerido e a consulta começou a ganhar o formato desejado. O que está ocorrendo é que quando não existe lançamento em um dos campos para aquela data, exemplo, tem uma entrada na coluna Fatura e não existe saída na data na coluna Pagamentos, este ultimo campo é nulo, consequentemente não ocorre a subtração dos campos de Fatura e Pagamento. Talvez encaixar o código Nz resolva, se o campo é nulo retorna valor 0 (zero). Estou tentando inserir este código mas não obtive sucesso ainda.
    Um outro aspecto é que o saldo deve ser: Saldo Anterior + Fatura -Pagamento = Saldo Atual.
    Continuo contando com sua ajuda
    LiveBrain
    LiveBrain
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 15/05/2011

    [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas Empty Re: [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  LiveBrain 12/9/2014, 19:01

    Pode usar o NZ mesmo


    Vai ficar mais ou menos assim:
    Saldo: Nz([Consulta]![Compra];0)-Nz([Consulta]![Venda];0)


    .................................................................................
    Abraços

    Live Brain Tutoriais

    "Fraca é a pessoa que não conhece a força que possui nos amigos"
    avatar
    pbbsb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/08/2013

    [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas Empty Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  pbbsb 15/9/2014, 13:12

    Funcionou LiveBrain. Eu estava colocando o Nz para a fórmula toda.
    Ficou a questão da fórmula do Saldo Atual=Saldo Anterior + Entradas - Saídas.
    Eu conheço um caminho mas ele pede um indicador de posição do registro anterior e atual, e na consulta não tem.
    Seria o caso de se criar um indicador na consulta ou transformar esta consulta em uma tabela com uma Primary Key?
    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]Fluxo de Caixa com duas tabelas não relacionadas Empty Re: [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  Celso Roberto 15/9/2014, 20:07

    Boa Tarde
    Com a Licença do Amigo LiveBrain

    Voce também pode tentar este exemplo criando apenas uma consulta.
    Note que alterei os nomes de sua tabelas Retirando os espaços entre elas(Sugiro que altere os nomes para igual esta no exemplo) e então cole esta SQL em uma nova consulta e veja se é o resultado que precisa  

    SELECT DISTINCT CP.DataVencimento, (SELECT IIf(Sum(ValorDaParcela)Is Null,0,Sum(ValorDaParcela)) FROM DetalhesFatura AS Tb1 WHERE Tb1.DataVencimento=CP.DataVencimento) AS ValorEntrada, (SELECT IIf(Sum(ValorParcela)Is Null,0,Sum(ValorParcela)) FROM DetalhesPagamento AS Tb2 WHERE Tb2.DataVencimento=CP.DataVencimento) AS ValorSaida, ValorEntrada-ValorSaida AS ValorSaldoAtual

    FROM (SELECT DataVencimento FROM DetalhesFatura

    UNION SELECT DataVencimento FROM DetalhesPagamento)  AS CP

    ORDER BY CP.DataVencimento;



    Nota: Este modelo de União e agrupamento aprendi com Nosso Mestre Alexandre Neves

    Aguardamos Retorno

    Abraços


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


    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.....
    avatar
    pbbsb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/08/2013

    [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas Empty Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  pbbsb 16/9/2014, 16:12

    Respondendo a proposta anterior, fiz uma nova consulta usando estas instruções. Mantive os nomes das tabelas pois iria me acarretar um monte de problemas em formulários e consultas, mas o resultado foi o esperado. Com esta instrução em uma única consulta chega-se ao mesmo resultado via 3 consultas.
    Segue a instrução usada:

    SELECT DISTINCT CP.DataVencimento, (SELECT IIf(Sum(ValorDaParcela)Is Null,0,Sum(ValorDaParcela)) FROM [Detalhes da Fatura] AS Tb1 WHERE Tb1.DataVencimento=CP.DataVencimento) AS Entrada, (SELECT IIf(Sum(ValorParcela)Is Null,0,Sum(ValorParcela)) FROM [Detalhes do Pagamento] AS Tb2 WHERE Tb2.DataVencimento=CP.DataVencimento) AS Saida, [Entrada]-[Saida] AS Saldo
    FROM (SELECT DataVencimento FROM [Detalhes da Fatura]

    UNION SELECT DataVencimento FROM [Detalhes do Pagamento])  AS CP
    ORDER BY CP.DataVencimento;

    Como havia dito antes em outro post, apenas o saldo precisa ser corrigido, pois: Saldo Atual = Saldo Anterior + Entrada - Saida
    Como consultas não apresentam nenhum numerador de registro, eu testei criando uma tabela a partir da consulta e inseri uma PK. Depois em um form, no campo saldo, eu inclui: Saldo:Entrada-Saida; "Saldo_Key<=" & Saldo_Key
    Mas só funciona na tabela com o form.
    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]Fluxo de Caixa com duas tabelas não relacionadas Empty Re: [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  Celso Roberto 16/9/2014, 18:58

    Boa Tarde
    Para ter o saldo Corrigido(Acumulando) e continuar em apenas 1 consulta teremos que criar 2 colunas, 1 para acumular Entradas e 1 para acumular saidas e fazer Entrada acum- saida Acum

    Altere o Anterior por este e veja se é isto.

    SELECT DISTINCT CP.DataVencimento, (SELECT IIf(Sum(ValorDaParcela)Is Null,0,Sum(ValorDaParcela)) FROM [Detalhes da Fatura] AS Tb1 WHERE Tb1.DataVencimento=CP.DataVencimento) AS Entrada, (SELECT IIf(Sum(ValorDaParcela)Is Null,0,Sum(ValorDaParcela)) FROM [Detalhes da Fatura] AS Tb1 WHERE Tb1.DataVencimento<=CP.DataVencimento) AS EntradaAcum, (SELECT IIf(Sum(ValorParcela)Is Null,0,Sum(ValorParcela)) FROM [Detalhes do Pagamento] AS Tb1 WHERE Tb1.DataVencimento=CP.DataVencimento) AS Saida, (SELECT IIf(Sum(ValorParcela)Is Null,0,Sum(ValorParcela)) FROM [Detalhes do Pagamento] AS Tb1 WHERE Tb1.DataVencimento<=CP.DataVencimento) AS SaidaAcum, [EntradaAcum]-[SaidaAcum] AS Saldo
    FROM (SELECT DataVencimento FROM [Detalhes da Fatura]
    UNION SELECT DataVencimento FROM [Detalhes do Pagamento])  AS CP
    ORDER BY CP.DataVencimento;

    Aguardamos retorno

    Abraços


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


    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.....
    avatar
    pbbsb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/08/2013

    [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas Empty Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  pbbsb 16/9/2014, 20:27

    Funcionou perfeitamente Razz
    Agradeço ao LiveBrain e ao Celso Roberto pela importante ajuda.
    Com certeza duvidas surgirão ainda pois este é o começo de um trabalho para pegar todos os dados do BD e começar a analisa-los dentro de uma estrutura de Gestão Financeira.
    Obrigado a todos.
    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]Fluxo de Caixa com duas tabelas não relacionadas Empty Re: [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  Celso Roberto 16/9/2014, 22:05

    Boas

    O Fórum agradece seu retorno

    Sucesso!!!

    Abraços


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


    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.....
    avatar
    pbbsb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/08/2013

    [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas Empty Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  pbbsb 19/9/2014, 18:31

    Caros mestres, surgiu uma situação que não estou conseguindo resolver, dentro deste mesmo tópico. Como não sei reabrir o tópico, estou postando e espero que entendam.
    O objetivo é o mesmo, uma consulta com tabelas não relacionadas. Porem eu preciso informar também o histórico, ou seja, quem pagou ou quem recebeu. Desta forma minha consulta ficaria com as colunas: DATA HISTÓRICO ENTRADA SAÍDA
    A consulta das entradas e os juntamentos estão abaixo:

    SELECT [Detalhes da Fatura].DataRecebimento, tblClientes.RazaoSocial_Nome, [Detalhes da Fatura].ValorRecebido
    FROM (tblClientes INNER JOIN (tblPedidos INNER JOIN tblFaturas ON tblPedidos.Pedido_ID = tblFaturas.Pedido_ID) ON tblClientes.Cliente_ID = tblPedidos.Cliente_ID) INNER JOIN [Detalhes da Fatura] ON tblFaturas.Recebimento_ID = [Detalhes da Fatura].Recebimento_ID_Detalhes;

    As saídas:

    SELECT [Detalhes do Pagamento].DataPagamento, Fornecedores.RazaoSocial_Nome, [Detalhes do Pagamento].ValorPago
    FROM (Fornecedores INNER JOIN (Despesas INNER JOIN Pagamentos ON Despesas.DespesaID = Pagamentos.DespesaID) ON Fornecedores.CadastroFornecedorID = Despesas.CadastroFornecedorID) INNER JOIN [Detalhes do Pagamento] ON Pagamentos.Pagamento_ID = [Detalhes do Pagamento].Pagamento_ID_Detalhes;


    Tentei adaptar na estrutura que o Celso forneceu mas me perdi na sintaxe e não sei se é possível.
    Tanto para clientes como fornecedores, a razão social seria a coluna HISTÓRICO.
    De imediato, até mesmo para eu entender bem o processo, não há a necessidade de se obter o saldo atualizado.

    Agradeço pela paciencia Wink
    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]Fluxo de Caixa com duas tabelas não relacionadas Empty Re: [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  Celso Roberto 22/9/2014, 04:13

    Boa Noite

    Tem como resolver dentro desta mesma estrutura de montagem, mas para isto tem que se basear nas consultas.
    Tenta se não conseguir post partes integrantes como as tabelas e consultas envolvidas

    SELECT DISTINCT CP.DataVencimento, CP.RazaoSocial_Nome, (SELECT IIf(Sum(ValorDaParcela)Is Null,0,Sum(ValorDaParcela)) FROM [NOMEDACONSULTAENTRADAS] AS Tb1 WHERE Tb1.DataVencimento=CP.DataVencimento) AS Entrada, (SELECT IIf(Sum(ValorDaParcela)Is Null,0,Sum(ValorDaParcela)) FROM [NOMEDACONSULTAENTRADAS] AS Tb1 WHERE Tb1.DataVencimento<=CP.DataVencimento) AS EntradaAcum, (SELECT IIf(Sum(ValorParcela)Is Null,0,Sum(ValorParcela)) FROM [NOMEDACONSULTASAIDAS] AS Tb1 WHERE Tb1.DataVencimento=CP.DataVencimento) AS Saida, (SELECT IIf(Sum(ValorParcela)Is Null,0,Sum(ValorParcela)) FROM [NOMEDACONSULTASAIDAS] AS Tb1 WHERE Tb1.DataVencimento<=CP.DataVencimento) AS SaidaAcum, [EntradaAcum]-[SaidaAcum] AS Saldo

    FROM (SELECT DataVencimento, RazaoSocial_Nome FROM [NOMEDACONSULTAENTRADAS]
    UNION SELECT DataVencimento, RazaoSocial_Nome FROM [NOMEDACONSULTASAIDAS]) AS CP
    ORDER BY CP.DataVencimento;
    Espero que de Certo!!!

    Aguardo Retorno

    Abraços

    Nota: Para Reabrir Tópico basta clicar no botão Resolvido e quando finalizar Clique Novamente


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


    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.....
    avatar
    pbbsb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/08/2013

    [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas Empty Fluxo de caixa com duas tabelas não relacionadas

    Mensagem  pbbsb 22/9/2014, 18:12

    Celso
    Fiz como indicou mas não deu certo, ou melhor, quase deu.
    O primeiro problema encontrado é que se em um determinado dia houver 4 entradas e 2 saídas, por exemplo, a rotina soma todas as entradas individuais e coloca nas 4 linhas de registro o valor somado e da mesma forma acontece com a saída. O resultado final, o saldo atual fica correto, mas a informação individual de cada entrada ou saída não aparece, somente a soma delas.
    O segundo problema encontrado, e talvez o mais crítico, é o tempo que se gasta para executar a rotina devido, acredito, a necessidade de se juntar tabelas para encontrar a Razão Social. Em meu banco, que tem algo em torno de 2000 registros, este tempo já está em torno de 3 minutos. Considerando que o banco tenda a crescer, no futuro ficaria inviável.
    Vou separar as tabelas e consultas em um arquivo, zipar e enviar, para poder analisar.
    Também estou considerando a possibilidade de se criar uma tabela para este fim, facilitando a consulta e tornando-a mais rápida.
    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]Fluxo de Caixa com duas tabelas não relacionadas Empty Re: [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  Celso Roberto 23/9/2014, 06:25

    Boas

    Aguardo o seu envio do bd para continuar a ajuda, mas adiantando te digo o seguinte:
    1- Quanto a demora para gerar o resultado é porque esta gerando algum conflito de dados, tenho bd com mais ou menos 12000 registros e carrega em mais ou menos 40 segundos e acho que esta demorando
    2- Se voce quer que cada entrada ou saida seja mostrado a razão Social ele vai gerar um registro para cada Razão social diferente, só vai haver agrupamento quando for mesma razão social no mesmo dia.

    Tanto neste método ou em outro não tem como fazer agrupamento por Nomes diferentes

    Aguardo bd

    Abraços


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


    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.....
    avatar
    pbbsb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/08/2013

    [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas Empty Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  pbbsb 1/10/2014, 19:36

    Celso.
    Desculpe-me a demora em responder, mas tenho tido muitos problemas de produção nos ultimos 20 dias e tem me tomado todo o tempo. Até que eu solucione os problemas de produção eu vou deixar este projeto em stand by. Assim, para não deixar o tópico em aberto, vou encerrá-lo e voltamos ao assunto em futuro próximo.
    De momento agradeço muito sua atenção e espero poder continuar contando com sua ajuda e dos outros.
    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]Fluxo de Caixa com duas tabelas não relacionadas Empty Re: [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  Celso Roberto 2/10/2014, 02:54

    Boas

    Ficamos aguardando


    Abraços


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


    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]Fluxo de Caixa com duas tabelas não relacionadas Empty Re: [Resolvido]Fluxo de Caixa com duas tabelas não relacionadas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 18:37