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

consulta con fechas

Estas en el tema de consulta con fechas en el foro de SQL Server en Foros del Web. Hola tengo el siguiente plateamiento. Necesito saber que registros cumplen la condicion de que desde su ultima transaccion han transcurrido de: 1 a 15 dias ...
  #1 (permalink)  
Antiguo 27/06/2011, 12:14
 
Fecha de Ingreso: abril-2007
Mensajes: 119
Antigüedad: 17 años
Puntos: 1
consulta con fechas

Hola tengo el siguiente plateamiento.

Necesito saber que registros cumplen la condicion de que desde su ultima transaccion han transcurrido de:

1 a 15 dias
16 a 31 dias
32 a 45 dias.

Para esto cuento con dos campos fechas:

fec_ult_trasac y fec_sistema.

Entonces, si mi fec_ult_trasac fue el 14/05/2011 y mi fec_sistema es 27/06/2011. Quiero saber en que rango estoy, me explico?

De antemano gracias por su coloboracion.
  #2 (permalink)  
Antiguo 27/06/2011, 14:15
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: consulta con fechas

Hola rafaescalona

La función DATEDIFF te sirve (entre otras cosas) para poder saber cuantos días han transcurrido entre dos fechas, puedes usar esto junto con una sentencia CASE WHEN para armar los rangos.

Código SQL:
Ver original
  1. DECLARE @TuTabla TABLE (id INT, fec_ult_trasac datetime)
  2. INSERT INTO @TuTabla VALUES (1, '2011-05-14')
  3. INSERT INTO @TuTabla VALUES (2, '2011-06-10')
  4. INSERT INTO @TuTabla VALUES (3, '2011-06-26')
  5. INSERT INTO @TuTabla VALUES (4, '2011-01-01')
  6.  
  7. SELECT * FROM @TuTabla
  8.  
  9. SELECT id,
  10. CASE WHEN datediff(DAY, fec_ult_trasac, getdate()) BETWEEN 1 AND 15 THEN 'entre 1 y 15 días' ELSE
  11. CASE WHEN datediff(DAY, fec_ult_trasac, getdate()) BETWEEN 16 AND 31 THEN 'entre 16 y 31 días' ELSE
  12. CASE WHEN datediff(DAY, fec_ult_trasac, getdate()) BETWEEN 32 AND 45 THEN 'entre 31 y 45 días' END END END
  13. rango
  14. FROM @TuTabla

aquí faltaría incluir cuando los rangos para cuando la diferencia sea menor o igual a 0 o cuando sea mayor a 45 es por eso que el último registro aparece como NULL es cuestión de que incluyas la condición o filtres la información.

Saludos
  #3 (permalink)  
Antiguo 27/06/2011, 15:01
 
Fecha de Ingreso: abril-2007
Mensajes: 119
Antigüedad: 17 años
Puntos: 1
Respuesta: consulta con fechas

hola, antes que nada gracias por tomarte la molestia de responder y entiendo perfectamente lo que me explicas, solo que yo estoy en FoxPro9 y no me meramente en SQLTransac.

en una ayuda que encontre me sugieren esto

SELECT DATE(fec_ult_transac) - DATE(fec_sistema) AS dias FROM mi_tabla

pero me manda: "muy pocos argumentos"

no se en que estoy fallando.
  #4 (permalink)  
Antiguo 27/06/2011, 15:46
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: consulta con fechas

¿Y porque no colocas tu pregunta en un foro de FOX?
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 27/06/2011, 16:02
 
Fecha de Ingreso: abril-2007
Mensajes: 119
Antigüedad: 17 años
Puntos: 1
Respuesta: consulta con fechas

ya lo hice...
  #6 (permalink)  
Antiguo 27/06/2011, 16:12
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: consulta con fechas

Bueno, pues dale seguimiento en dicho foro......una de las reglas de los foros, en no colocar temas donde no corresponden.
__________________
MCTS Isaias Islas

Etiquetas: fechas
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 04:31.