Usuário com melhor resposta
Select valor acumulando por data de pagto

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.
SELECTA.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_LancamentoId_PlanoContascod_Origemdata_Lancamentodata_PagtodebitocreditoId_destinohistoricotb_Finan_Origem: ID_Origemcod_OrigemcontaId_PlanoContastb_Finan_PlanoContas: ID_PlanoContasplanoContas
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
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 -
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
-
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.
-
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
-