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

ayuda con este query

Estas en el tema de ayuda con este query en el foro de Bases de Datos General en Foros del Web. tengo el siguiente query SELECT cliente_datos.folio, cliente_datos.cliente_nombre, cliente_datos.cliente_apelpat, cliente_datos.cliente_apelmat, tabla_produccion.const_status, tabla_produccion.const_date_emi, DATEDIFF( DATE_ADD(tabla_produccion.const_date_emi,INTERVAL 30 DAY), NOW()) AS DiffDate FROM `tabla_produccion` LEFT JOIN usuarios_folios ON usuarios_folios.folio ...
  #1 (permalink)  
Antiguo 13/08/2009, 11:57
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 15 años, 1 mes
Puntos: 0
ayuda con este query

tengo el siguiente query

SELECT cliente_datos.folio, cliente_datos.cliente_nombre, cliente_datos.cliente_apelpat, cliente_datos.cliente_apelmat, tabla_produccion.const_status, tabla_produccion.const_date_emi, DATEDIFF( DATE_ADD(tabla_produccion.const_date_emi,INTERVAL 30 DAY), NOW()) AS DiffDate FROM `tabla_produccion` LEFT JOIN usuarios_folios ON usuarios_folios.folio = tabla_produccion.folio LEFT JOIN `cliente_datos` ON cliente_datos.folio = tabla_produccion.folio WHERE const_status = 2

Donde me debe de arrojar varios campos por el resultado del datediff...en mi tabla tengo como 70 campos pero quiero añadirle un filtro que nada mas me arroje todos los campos donde el 'DateDiff' sea mayor igual a 20 y menor igual a 30, le he calado con lo siguiente

AND 'DiffDate' >= 20 OR 'DiffDate' <= 30: donde aqui me arroja TODOS LOS DATOS ya que nada mas compara uno o el otro y siempre se cumple esta funcion por lo cual me arroja mis 70 campos en vez de 10 que tengo dentro de este rango y luego le cale con

AND 'DiffDate' >= 20 AND 'DiffDate' <= 30: donde aqui no me arroja NADA! y no entiendo porque....todos estos de los he puesto despues del WHERE, pero no funciona como yo quiero que es

30 >= 'DiffDate' <= 20 con este filtro ocupo, alguien me puede ayudar porfavor?
  #2 (permalink)  
Antiguo 13/08/2009, 13:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ayuda con este query

Código sql:
Ver original
  1. SELECT
  2.     CD.folio,
  3.     CD.cliente_nombre,
  4.     CD.cliente_apelpat,
  5.     CD.cliente_apelmat,
  6.     TP.const_status,
  7.     TP.const_date_emi,
  8.     DATEDIFF( DATE_ADD(TP.const_date_emi,INTERVAL 30 DAY), NOW()) AS DiffDate
  9. FROM `tabla_produccion` TP
  10.     LEFT JOIN usuarios_folios UF ON UF.folio = TP.folio
  11.     LEFT JOIN `cliente_datos` CD ON CD.folio = TP.folio
  12. WHERE const_status = 2
  13. HAVING 'DiffDate' BETWEEN 20 AND 30

No lo he probado, pero debería funcionar o andar por allí.
Tip: Usa alias, te facilitan la escritura y la lectura.
Tip 2: Trata de estructurar las sentencias para que sean más fáciles de leer.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 03:57.