GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

[RESOLVIDO] Erro no Ireport (Banco postgresql)

postgresql
ireport
Tags: #<Tag:0x00007fb01ba2eb30> #<Tag:0x00007fb01ba2e928>

#1

O erro é que quando coloco o mesmo codigo que uso no postgresql e funciona normalmente, não funciona no Ireport, tentei colocar parenteses na parte : dtpagamento >= ‘2017-11-01’ and dtpagamento <= ‘2017-11-30’ and idempresa = 4863 porem qnd coloco aparece outro erro dizendo “Operator does not exist numeric = boolean”

SELECT
contaspagar.“idcontaspagar” AS contaspagar_idcontaspagar,
contaspagar.“dtpagamento” AS contaspagar_dtpagamento,
contaspagar.“idempresa” AS contaspagar_idempresa,
contaspagar.“vlrdesconto” AS contaspagar_vlrdesconto
FROM
"public".“contaspagar” contaspagar
WHERE
contaspagar.“vlrdesconto” = dtpagamento >= ‘2017-11-01’ and dtpagamento <= ‘2017-11-30’ and idempresa = 4863


#2

Vi que você já resolveu o problema, porém gostaria de mencionar uma pequena melhoria que pode ser realizada em seu SQL.

Ao invés de utilizar os comparadores >= e <= você pode usar Between, passando o intervalo de datas conforme abaixo, isso deixa seu SQL mais elegante e mais legível.

DTPAGAMENTO BETWEEN '01/11/2017' AND '30/11/2017'


#3

Obrigado amigo, é uma boa melhoria mesmo e que eu estava a procura do significado do between.


#4

Between em banco de dados tem o mesmo significado que o de sua tradução, ou seja, siginifica “entre”.
Ele atende perfeitamente a regra de consulta por intervalos, ou seja, retorne para mim os registros entre o valor inicial e valor final da condição.