Ayuda con un query SQL
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.
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.
Manda un ejemplo de 10 o m谩s registros, y la query que tienes hasta este momento
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
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
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.
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.
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
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
Guau!! gracias compadre, me funcion贸 muy bi茅n, muchisimas gracias de nuevo!! ;)