Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

[SOLUCIONADO] Buscar con condicion, por uno u otro campo.

Estas en el tema de Buscar con condicion, por uno u otro campo. en el foro de PostgreSQL en Foros del Web. Tengo una query con un trozo que es: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original AND e . fecha_creacion BETWEEN :fechaInicio AND :fechaFin " Pero quiero ...
  #1 (permalink)  
Antiguo 14/09/2015, 04:45
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 16 años, 1 mes
Puntos: 5
Buscar con condicion, por uno u otro campo.

Tengo una query con un trozo que es:

Código SQL:
Ver original
  1. AND e.fecha_creacion BETWEEN :fechaInicio AND :fechaFin "

Pero quiero se busque por fecha.modificacion si no es null esta, y si es null por fecha.creaccion

Alguien me puede ayuda.
Gracias.
  #2 (permalink)  
Antiguo 14/09/2015, 06:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Buscar con condicion, por uno u otro campo.

Son condiciones diferentes e interexcluyentes, aunque se parezcan. Debes indicar ambas:
Código SQL:
Ver original
  1. AND ((e.fecha_modificacion  BETWEEN :fechaInicio AND :fechaFin )
  2. OR (e.fecha_creacion  IS NULL AND e.fecha_creacion BETWEEN :fechaInicio AND :fechaFin ))

Presta atencion a los paréntesis...

Recuerda que el SQL es un lenguaje de imprerativo. No hará nada que no le indiques expresamente, por consecuencia eres tu el que debe determinar como se cumple la lógica de la condición que quieres.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:50.