SALDO DA CONTA CORRENTE COM UMA EXPRESSAO SQL

USUARIO.EXCLUIDOS 14/09/2006 14:24:46
#171463
Estou precisando retornar o saldo altual de uma conta corrente por meio de uma expressão SQL. e não estou conseguindo montar a expressão!!

Provissóriamente estou usando está função!!

Public Function SaldoCCNaData(DataOperacaoOuConsolidada As String, DataDeterminada As Variant, NrDaContaCorrente As Double, SoNaoConsolidados As Boolean) As Double
Dim MinhaQuery As String
Dim MeuREC As Recordset
SaldoCCNaData = 0
If DataOperacaoOuConsolidada = "DataOeração" And SoNaoConsolidados = True Then
MinhaQuery = "SELECT * FROM TBMovimentacaoContaCorren WHERE (IdCorrentista = " & NrDaContaCorrente & ") AND " & DataOperacaoOuConsolidada & " < CDate('" & DataDeterminada & "') AND (Dataconsolidado Is Null)"
Else
MinhaQuery = "SELECT * FROM TBMovimentacaoContaCorren WHERE (IdCorrentista = " & NrDaContaCorrente & ") AND " & DataOperacaoOuConsolidada & " < CDate('" & DataDeterminada & "')"
End If
Set MeuREC = vgDb.OpenRecordSet(minhaQuery, dbOpenDynaset)
If MeuREC.RecordCount > 0 Then
MeuREC.MoveFirst
Do While Not MeuREC.EOF
If MeuREC![DébitoCredito] = 0 Then
SaldoCCNaData = (SaldoCCNaData - MeuREC!Valor)
End If
If MeuREC![DébitoCredito] = 1 Then
SaldoCCNaData = (SaldoCCNaData + MeuREC!Valor)
End If
MeuREC.MoveNext
Loop
Else
SaldoCCNaData = 0
End If
If Not MeuREC Is Nothing Then
MeuREC.Close
Set MeuREC = Nothing
End If
End Function


Gostaria de usar uma expressão SQL que retornasse o saldo da CC

Mreginalacera@ig.com.br

desdeja muito obrigado!!
USUARIO.EXCLUIDOS 14/09/2006 14:51:08
#171472
Colega, teste do seguinte modo e qualquer dúvida poste:

Public Function SaldoCCNaData(DataOperacaoOuConsolidada As String, DataDeterminada As Variant, NrDaContaCorrente As Double, SoNaoConsolidados As Boolean) As Double
Dim MinhaQuery As String
Dim MeuREC As Recordset

'Monta a condição para selecionar a conta
If DataOperacaoOuConsolidada = "DataOeração" And SoNaoConsolidados = True Then
MinhaQuery = " WHERE (IdCorrentista = " & NrDaContaCorrente & ") AND " & DataOperacaoOuConsolidada & " < CDate('" & DataDeterminada & "') AND (Dataconsolidado Is Null)"
Else
MinhaQuery = " WHERE (IdCorrentista = " & NrDaContaCorrente & ") AND " & DataOperacaoOuConsolidada & " < CDate('" & DataDeterminada & "')"
End If

'Monta a SubQuery, que retornará o valor das contas em Saldo, tipo se tivermos os registros:
'DébitoCredito | Valor
'0 | 100
'0 | 150
'0 | 50
'1 | 200
'Retornaria:
'DébitoCredito | ValTotal
'0 | -300
'1 | +200
MinhaQuery = "SELECT Sum(Valor) * CInt(Iif([DébitoCredito] = 0, -1, 1)) As ValTotal, [DébitoCredito] FROM TBMovimentacaoContaCorren " & _
MinhaQuery & _
" GROUP BY [DébitoCredito]"

'Esta query somará os dados da query acima, retornando assim:
'Saldo = -100 ( = -300 + 200)
MinhaQuery = "SELECT SUM(ValTotal) As Saldo FROM (" & MinhaQuery & ")"

Set MeuREC = vgDb.OpenRecordSet(MinhaQuery, dbOpenDynaset)

If MeuREC.RecordCount > 0 Then
SaldoCCNaData = MeuREC!Saldo
Else
SaldoCCNaData = 0
End If

If Not MeuREC Is Nothing Then
MeuREC.Close
Set MeuREC = Nothing
End If
End Function



Falow...
USUARIO.EXCLUIDOS 15/09/2006 14:59:41
#171705
Obrigado, Vou por na pratica..
USUARIO.EXCLUIDOS 15/09/2006 15:08:42
#171710
Resposta escolhida
Citação:

MARCO LACERA escreveu:
Obrigado, Vou por na pratica..



Blz, qualquer dúvida poste ^^....flw
USUARIO.EXCLUIDOS 18/09/2006 14:32:49
#172163
MATIOLI quem sabe sabe... MUITO OBRIGADO!!!
Tópico encerrado , respostas não são mais permitidas