QUERY SELECT COM V?RIOS FILTROS

JMSGRILO 24/12/2015 10:06:43
#455518
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



KERPLUNK 24/12/2015 19:26:18
#455525
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
RO.DRIGOSG 28/12/2015 18:17:37
#455587
Resposta escolhida
Olá JMSGRILO,

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[Ô]

JMSGRILO 28/12/2015 19:48:49
#455589
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....
Tópico encerrado , respostas não são mais permitidas