none
Filtrar por período de datas RRS feed

  • Pergunta

  • Boa tarde! 

    Preciso de um auxílio em relação a uma pesquisa que contém como um dos filtros o período de data. 
    A pesquisa tem vários filtros, e posso passar nulo pra todos eles. Mas com o filtro de "Data Inicial" e Data Final", isso não está funcionando.

    Segue minha query: 

    SELECT...

    (Aqui começa o meu where com várias condições, e nessas abaixo, posso ou passar o parametro, ou nulo)

    AND ( ( @PARAMETRO1 IS NULL )
    OR ( @PARAMETRO1 IS NOT NULL
    AND A.CAMPO1 = @PARAMETRO1 ) )     

    AND ( ( @PARAMETRO2 IS NULL )
    OR ( @PARAMETRO2 IS NOT NULL
    AND A.CAMPO2 = @PARAMETRO2) )

    porém, para o meu intervalo de datas, não funciona desta forma: 

    AND ( ( A.DATA_INCLUSAO BETWEEN @DATA_INICIAL AND @DATA_FINAL )
    OR ( A.DATA_INCLUSAO A IS NOT NULL
    AND A.DATA_INCLUSAO  BETWEEN @DATA_INICIAL AND @DATA_FINAL ) )


    Obrigada desde já quem puder ajudar!


    • Editado Aretha Lemos terça-feira, 27 de novembro de 2012 15:46
    terça-feira, 27 de novembro de 2012 15:43

Respostas

  • Boa tarde,

    Aretha, da forma como você postou não está sendo verificado se os parâmetros são nulos:

    AND ( ( @DATA_INICIAL IS NULL OR @DATA_FINAL IS NULL )
    OR ( A.DATA_INCLUSAO  BETWEEN @DATA_INICIAL AND @DATA_FINAL ) )

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br


    • Editado gapimex terça-feira, 27 de novembro de 2012 16:35 otimização do script
    • Marcado como Resposta Aretha Lemos terça-feira, 27 de novembro de 2012 16:45
    terça-feira, 27 de novembro de 2012 16:32

Todas as Respostas

  • Aretha,

    A consulta está retornando um resultado não esperado ou está sendo gerando um erro? Se for um erro favor postá-lo.


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    terça-feira, 27 de novembro de 2012 16:27
  • Boa tarde,

    Aretha, da forma como você postou não está sendo verificado se os parâmetros são nulos:

    AND ( ( @DATA_INICIAL IS NULL OR @DATA_FINAL IS NULL )
    OR ( A.DATA_INCLUSAO  BETWEEN @DATA_INICIAL AND @DATA_FINAL ) )

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br


    • Editado gapimex terça-feira, 27 de novembro de 2012 16:35 otimização do script
    • Marcado como Resposta Aretha Lemos terça-feira, 27 de novembro de 2012 16:45
    terça-feira, 27 de novembro de 2012 16:32
  • Funcionou certinho aqui Gapimex, não tinha me atentado que não fazia essa validação nos parâmetros.

    Muito obrigada!

    terça-feira, 27 de novembro de 2012 16:45