Ayuda con un query SQL

Pa?
31 de Octubre del 2005
Hola,

Por favor, quisiera que alguien me ayude con un query que trato de hacer el SQL Server y no puedo.

Lo que intento es sacar de una tabla llamada "sincronizacion" un campo llamado id, 2 veces un mismo campo llamado fecha, facil hasta ahi, pero ahora necesito que el un campo fecha cumpla con la condicion que el campo "status" de la misma tabla sincronizaci贸n sea igual a 4, y que otro campo fecha (que vendria a ser el mismo) est茅 entre 1 y 3.

El caso en si, seria que las fecha con status 4 serian sincronizaciones concluidas, y las que estarian entre 1 y 3 serian las ingresadas. Con esto podemos saber cuando fue la ultima vez que un usuario concluyo su sincronizaci贸n y hasta cuando tiene sincronizaciones agendadas para en un futuro concluirlas.

Si alguien me puede ayudar, le agradecer铆a mucho.

Saludos...

Pa煤l.

Ps. He intentado crear una tabla temporal igual a la tabla "sincronizaci贸n" y de ahi tomar el otro campo fecha pero la consulta demora demasiado porque son como 503.000 registros.

Gato
31 de Octubre del 2005
Manda un ejemplo de 10 o m谩s registros, y la query que tienes hasta este momento

monky
31 de Octubre del 2005
Asi debiera funcionar

select id,
CASE WHEN status= 4 THEN fecha ELSE NULL END AS fecha1,
CASE WHEN status BETWEEN 1 AND 3 THEN fecha ELSE NULL END AS fecha2
from SINCRONIZACION
where .....

Suerte

Pa?
31 de Octubre del 2005
Muchas gracias por responder; Monky, la verdad es que me ayud贸 mucho tu respuesta, solo tengo una pregunta mas; los registro son muchos y por eso quiero agruparlos por ID y como me interesa la ultima fecha de sincronizaci贸n uso la funci贸n "max" aplicada al campo fecha; hay alguna forma en que salga algo asi (si hay como obviamente) :

ID FECHA1 FECHA2
12 2005-10-31 2005-11-03
15 2005-10-28 2005-11-05

y asi sucesivamente.

Gracias nuevamente si alguien me puede ayudar.

Saludos...

Pa煤l.

monky
31 de Octubre del 2005
prueba asi... espero resulte

select id,
fecha1 = max(CASE WHEN status= 4 THEN fecha ELSE NULL END),
fecha2 = max(CASE WHEN status BETWEEN 1 AND 3 THEN fecha ELSE NULL END)
from prueba
group by id
order by id

Avisame si te funciono


Pa?
31 de Octubre del 2005
Guau!! gracias compadre, me funcion贸 muy bi茅n, muchisimas gracias de nuevo!! ;)

monky
31 de Octubre del 2005
Me alegro que te haya funcionado.

Para tu informacion soy mujer....