QUERY SELECT COM V?RIOS FILTROS
Pessoal,
Tenho uma rotina de um sistema de contas a pagar e receber, que deveria retornar o saldo do débito e crédito. Estou tentando com uma query que deveria retornar SUM conforme o filtro exposto. O problema é que não funciona dá erro! Estou utilizando banco firebird 2.5. Alguem poderia me dá uma forcinha??????
private sub saldo
If conexao.State = ConnectionState.Closed Then conexao.Close()
If conexao.State = 0 Then
conexao.Open()
End If
sqlS = [Ô]SELECT BANCO CASE LANCTO WHEN [ô]C[ô] THEN SUM(CP367) AS TOTALC WHEN [ô]D[ô] THEN SUM(CP367) AS TOTALD FROM SCMOVIMENTO END[Ô]
Dim cmd As FbCommand = New FbCommand(sqlS, conexao)
Dim leitor As FbDataReader = cmd.ExecuteReader()
Do While leitor.Read()
SaldoDebito = (leitor.Item([Ô]TOTALD[Ô]))
SaldoCredito = (leitor.Item([Ô]TOTALC[Ô]))
Loop
conexao.Close()
end sub
Tenho uma rotina de um sistema de contas a pagar e receber, que deveria retornar o saldo do débito e crédito. Estou tentando com uma query que deveria retornar SUM conforme o filtro exposto. O problema é que não funciona dá erro! Estou utilizando banco firebird 2.5. Alguem poderia me dá uma forcinha??????
private sub saldo
If conexao.State = ConnectionState.Closed Then conexao.Close()
If conexao.State = 0 Then
conexao.Open()
End If
sqlS = [Ô]SELECT BANCO CASE LANCTO WHEN [ô]C[ô] THEN SUM(CP367) AS TOTALC WHEN [ô]D[ô] THEN SUM(CP367) AS TOTALD FROM SCMOVIMENTO END[Ô]
Dim cmd As FbCommand = New FbCommand(sqlS, conexao)
Dim leitor As FbDataReader = cmd.ExecuteReader()
Do While leitor.Read()
SaldoDebito = (leitor.Item([Ô]TOTALD[Ô]))
SaldoCredito = (leitor.Item([Ô]TOTALC[Ô]))
Loop
conexao.Close()
end sub
Amigo, você não precisa de um [Ô]CASE[Ô] para isso. Basta fazer as somas:
SELECT LANCTO, SUM(CP367) FROM SUA_TABELA_AQUI GROUP BY LANCTO
Olá JMSGRILO,
Não conheço a sintaxe do Firebird, mas se fosse no SQL, seria assim:
Obs.: A palavra [Ô]BANCO[Ô] é um campo da tabela? Se sim, só faltou a vÃrgula:
Não conheço a sintaxe do Firebird, mas se fosse no SQL, seria assim:
SELECT CASE LANCTO WHEN [ô]C[ô] THEN SUM(CP367) AS TOTALC WHEN [ô]D[ô] THEN SUM(CP367) END AS TOTALD FROM SCMOVIMENTO[Ô]
Obs.: A palavra [Ô]BANCO[Ô] é um campo da tabela? Se sim, só faltou a vÃrgula:
SELECT BANCO, CASE LANCTO WHEN [ô]C[ô] THEN SUM(CP367) AS TOTALC WHEN [ô]D[ô] THEN SUM(CP367) END AS TOTALD FROM SCMOVIMENTO[Ô]
Galera, agradeço pela ajuda! Fiz assim é está funcionando...
sqlS = [Ô]SELECT CP204,SUM(CASE CP374 WHEN [ô]C[ô] THEN CP367 ELSE 0 END) AS TOTALC,SUM(CASE CP374 WHEN [ô]D[ô] THEN CP367 ELSE 0 END) AS TOTALD FROM SCMOVIMENTO WHERE CP366 <= REPLACE([ô][Ô] & dtNow & [Ô][ô],[ô]/[ô],[ô].[ô]) AND CP368 = [ô]S[ô] AND EMPCONT = [ô][Ô] & item03 & [Ô][ô] AND CP204 = [ô][Ô] & tbcp204.Text & [Ô][ô] GROUP BY CP204 ORDER BY CP204[Ô]
Essa query é para retornar o saldo anterior do movimento contabil, devendo separar o total de créditos e o total de débitos.
Agradeço a todos! Um feliz 2016....
sqlS = [Ô]SELECT CP204,SUM(CASE CP374 WHEN [ô]C[ô] THEN CP367 ELSE 0 END) AS TOTALC,SUM(CASE CP374 WHEN [ô]D[ô] THEN CP367 ELSE 0 END) AS TOTALD FROM SCMOVIMENTO WHERE CP366 <= REPLACE([ô][Ô] & dtNow & [Ô][ô],[ô]/[ô],[ô].[ô]) AND CP368 = [ô]S[ô] AND EMPCONT = [ô][Ô] & item03 & [Ô][ô] AND CP204 = [ô][Ô] & tbcp204.Text & [Ô][ô] GROUP BY CP204 ORDER BY CP204[Ô]
Essa query é para retornar o saldo anterior do movimento contabil, devendo separar o total de créditos e o total de débitos.
Agradeço a todos! Um feliz 2016....
Tópico encerrado , respostas não são mais permitidas