none
Select valor acumulando por data de pagto RRS feed

  • Pergunta

  • No código abaixo eu consigo o retorno do saldo acumulado, porém de acordo com a ordem dos lançamentos.

    Na verdade o que eu gostaria é de ter o saldo acumulado conforme a data de pagamento.

    Alguém poderia orientar algo?

    Meu Sistema Operacional é 64 bits e estou usando o Visual Studio.

    O objetivo é carregar um ASP:GridView com a configuração de um AccessDataSource.

    Utilizo para conexão Provider=Microsoft.Jet.OLEDB.4.0;Data Source.

    SELECT
    A.cod_Lancamento AS ID,
    B.conta,
    A.data_Lancamento,
    A.debito,
    A.credito,
    Format(Nz([A.credito],0)-Nz([A.debito],0),"Currency") AS Saldo,
    Format(DSum("[Saldo]","Consulta_Saldo_Demonstrativo","[ID]<=" & [ID] & " and B.conta = '" & [B].[conta] & "'"),"Currency") AS SaldoAcumulado
    FROM tb_Finan_Lancamentos AS A, tb_Finan_Origem AS B
    WHERE (((A.cod_Origem)=[B].[cod_Origem]));
    As tabelas são as seguintes:
    tb_Finan_Lancamentos: cod_Lancamento
                                          Id_PlanoContas
                                          cod_Origem
                                          data_Lancamento
                                          data_Pagto
                                          debito
                                          credito
                                          Id_destino
                                          historico
    tb_Finan_Origem: ID_Origem
                                 cod_Origem
                                 conta
                                 Id_PlanoContas
    tb_Finan_PlanoContas: ID_PlanoContas
                                      planoContas
    terça-feira, 6 de novembro de 2012 17:57

Respostas

  • Você não conseguirá utilizar as funções do Access com a conexão feita por ADO, em minha opinião esta é uma das falhas mais chatas do Office.

    Troque o NZ pelo SEIMED que vai funcionar...

    Bruno Silva Leite
    officevb.com

    • Marcado como Resposta Wilson Boris sexta-feira, 16 de novembro de 2012 10:33
    terça-feira, 13 de novembro de 2012 14:46

Todas as Respostas

  • O seu select ficará mais ou menos assim

    SELECT NOMECAMPO, SUM(CAMPOVALOR) FROM TBL WHERE DATA between #01/01/2012# and #01/31/2012# GROUP BY NOMECAMPO

    teste ai e qualquer coisa fale...

    []'s


    Bruno Silva Leite
    officevb.com

    quarta-feira, 7 de novembro de 2012 22:41
  • Olá Bruno,

    eu tentei com o código abaixo, mas está retornando com erro na sintaxe do Format(Sum..

    SELECT A.data_Pagto,B.conta,A.debito,A.credito,A.credito-A.debito AS Saldo, Format(Sum"[Saldo]","Consulta_Saldo_Demonstrativo_Teste","B.conta='"&[B].[conta]&"'") AS SaldoAcumulado
    FROM tb_Finan_Lancamentos AS A, tb_Finan_Origem AS B
    WHERE (((A.cod_Origem)=[B].[ID_Origem]))
    GROUP BY  A.data_Pagto,B.conta,A.credito,A.debito;


    • Editado Wilson Boris quinta-feira, 8 de novembro de 2012 13:54 correcao
    quinta-feira, 8 de novembro de 2012 13:52
  • Bruno, passei uma etapa, mas esbarrando em outra.

    acertei o código e está 100% no access, conforme abaixo:

    SELECT A.data_Pagto, B.conta, A.debito, A.credito, Nz(Format([A.credito]-[A.debito],"Currency"),0) AS Saldo, Nz(Format(DSum("[Saldo]","Consulta_Saldo_Demonstrativo","Day([A.data_Pagto]) <= '" & Day([A.data_Pagto]) & "' and Month([A.data_Pagto]) <= '" & Month([A.data_Pagto]) & "'  and Year([A.data_Pagto]) <= '" & Year([A.data_Pagto]) & "' and B.conta = '" & [B].[conta] & "'"),"Currency"),0) AS SaldoAcumulado
    FROM tb_Finan_Lancamentos AS A, tb_Finan_Origem AS B
    WHERE (((A.cod_Origem)=[B].[cod_Origem]))
    ORDER BY A.data_Pagto;

    O meu objetivo é ter esse retorno em um GridView, eu havia pensado que com este código poderia configurar uma Data Source - Access Data Source, mas nada feito, ao fazer o test query retorna com uma mensagem de que a função Nz é indefinida na expressão.

    sábado, 10 de novembro de 2012 01:24
  • Você não conseguirá utilizar as funções do Access com a conexão feita por ADO, em minha opinião esta é uma das falhas mais chatas do Office.

    Troque o NZ pelo SEIMED que vai funcionar...

    Bruno Silva Leite
    officevb.com

    • Marcado como Resposta Wilson Boris sexta-feira, 16 de novembro de 2012 10:33
    terça-feira, 13 de novembro de 2012 14:46
  • Valeu amigo,

    Realmente Bruno o caminho foi retirar Nz.

    Maiores detalhe no título: Configure Data Source GridView. Forum: ASP.NET

    sexta-feira, 16 de novembro de 2012 10:32