Consulta evaluando datos de distintos registros

29/05/2007 - 15:25 por Claudio | Informe spam
Hola:
Necesito ayuda para poder resolver una consulta que debe evaluar datos de
distintos registros, paso a expliarles un ejemplo.
Tengo la siguente tabla con los siguientes campos:

Legajo categoria fecha
1 A 2007/01/01
1 B 2007/02/05
1 C 2007/05/01
2 A 2007/02/01
2 C 2007/05/01
...

Lo que necesito es saber por cada legajo cuanto tiempo (dias) ha estado en
cada categoría, se que haciendo un procedimiento lo puedo sacar pero si se
puede hacer con select... mejor.

Gracias y saludos,
Claudio.
 

Leer las respuestas

#1 Alejandro Mesa
29/05/2007 - 15:56 | Informe spam
Claudio,

Cual version de SQL Server estas usando?

;with cte_1
as
(
select
Legajo,
categoria,
fecha,
row_number() over(partition by legajo order by fecha) as rn
from
dbo.t1
),
cte_2
as
(
select
a.legajo,
a.categoria,
datediff(day, a.fecha, isnull(b.fecha, getdate())) as dias
from
cte_1 as a
left join
cte_1 as b
on a.legajo = b.legajo
and a.rn = b.rn - 1
)
select
legajo,
categoria,
sum(dias) as sum_dias
from
cte_2
group by
legajo,
categoria
go


AMB

"Claudio" wrote:

Hola:
Necesito ayuda para poder resolver una consulta que debe evaluar datos de
distintos registros, paso a expliarles un ejemplo.
Tengo la siguente tabla con los siguientes campos:

Legajo categoria fecha
1 A 2007/01/01
1 B 2007/02/05
1 C 2007/05/01
2 A 2007/02/01
2 C 2007/05/01
...

Lo que necesito es saber por cada legajo cuanto tiempo (dias) ha estado en
cada categoría, se que haciendo un procedimiento lo puedo sacar pero si se
puede hacer con select... mejor.

Gracias y saludos,
Claudio.

Preguntas similares