SQL - Ayuda Con Query

   
Vista:

Ayuda Con Query

Publicado por Gabo (3 intervenciones) el 06/04/2009 21:19:58
Favor la ayuda de los entendidos para resolver el siguiente problema.

Tengo una BBDD que registra llamados telefonicos. (Numero telefonico, Fecha y hora, entra otros datos que no son importante ahora).
Necesito realizar una consulta que marque los numeros que se repitan dentro de un determinado rango de tiempo desde la primera vez que se disco en un mes especifico. Por ejemplo, durante el mes de Enero, el numero XXXXXXX se disco el dia 01-ene-2009 a las 22:00:00 entonce si el mismo numero XXXXXXX se disco dentro de las 24 horas posteriores al discado inicial, la marque con un "SI" si no se disco nuevamente o se disco mas alla de las 24 horas posteriores que la marque con un "NO".

¿se entendio?
ojala puedan ayudarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda Con Query

Publicado por Ethan (16 intervenciones) el 06/04/2009 23:50:37
select
d.numero,
d.fechadisk,
decode(
NVL((
select 1 from tabla x where x.fechadisk>d.fechadisk and x.fechadisk<=(d.fechadisk+1)
),0),1,'SI','NO') INDICADOR
tabla d
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda Con Query

Publicado por Gabo (3 intervenciones) el 07/04/2009 00:12:07
Te agradezco mucho la ayuda. Entiendo que respondiste en ORACLE. Yo estoy trabajando bajo SQL SERVER, ¿como seria?

Gracias nuevamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda Con Query

Publicado por Ethan (16 intervenciones) el 07/04/2009 01:33:11
si tienes razon use oracle .. mira sql server casi no lo uso y pues creo que lo que no es igual era el decode que utilizaba, la subconsulta en el select si lo reconoce mira puedes usar la sentencia when case te pongo un ejemplo seria checaras si es asi la sintaxis no tengo manual a la mano de sql server.
espero te sirva saludos.

select
e.numero,e.fechadisk,
when e.indicador
case 1 then 'si'
else 'no'
end as indica
from
(
select
d.numero,
d.fechadisk,
NVL((
select 1 from tabla x where x.fechadisk>d.fechadisk and x.fechadisk<=(d.fechadisk+1)
),0) as INDICADOR
tabla as d
)
as e
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar