Esta tabla equivale a un historico de seguimiento de actividades. lo q se busca es establecer el tiempo en horas q tardan las tareas.
la idea es llegar de esa informacion a la siguiente, en base a los parametros de entrada fecha1 y fecha2 (un intervalo) y el status decir las horas q se tardo 1 descripcionX en el estatus dado antes de cambiar al siguiente. vale la pena acotar q de nuevo solo puede cambiar a tomado y de tomado a pruebas y de pruebas a tomado, nunca de nuevo a productivo ni de tomado a productivo ejemplo:
entrda: status= tomado fecha1: 26/04/2007 fecha2: 09/07/2007 es decir cuanto tardo tomando antes de pasar a pruebas (ya q es el unico status q puede tomar despues de “tomado”) el resultado deberia ser de esta manera:
las horas las calculo multiplicando 4 dias (del 26/06/2007 al 30/06/2007) por 8 horas (laborales)
la FechaTom es la fecha q tiene el estatus de entrada en este caso “tomado” y la fechaPru es la fecha en la q cambio del status anterior a ese.
Necesito esto para hacer un reporte en ireport y para eso es urgente que saque primero el query sql.
espero haberme explicado y me puedan ayudar porque es ¡urgente! Muchas gracias de antemanos
select tb1.id_tb, tb1.fecha 'inicio', tb2.fecha 'fecha', ((tb1.fecha - tb2.fecha)*8)
from tb1 inner join tb2 on tb1.id_tb = tb2.id_tb
where ((tb1.status = 'nuevo' and tb2.status = 'tomado')
or (tb1.status = 'nuevo' and tb2.status = 'tomado')
or (tb1.status = 'tomado' and tb2.status = 'pruebas')
or (tb1.status = 'pruebas' and tb2.status = 'tomado'))
and tb1.status = @paramStatus
and tb1.fecha >= @paramInicio
and tb2.fecha >= @paramFim
select tb1.id_tb, tb1.fecha 'inicio', tb2.fecha 'fecha', ((tb1.fecha - tb2.fecha)*8)
from tb1 inner join tb2 on tb1.id_tb = tb2.id_tb
where ((tb1.status = 'nuevo' and tb2.status = 'tomado')
or (tb1.status = 'nuevo' and tb2.status = 'tomado')
or (tb1.status = 'tomado' and tb2.status = 'pruebas')
or (tb1.status = 'pruebas' and tb2.status = 'tomado'))
and tb1.status = @paramStatus
and tb1.fecha >= @paramInicio
and tb2.fecha >= @paramFim
[/quote]
HOLA QUIERO ACLARAR Q TENGO SOLO 1 TABLA PARA HACER EL QUERY, OSEA
MITABLA:
ID_tb…Fecha…Descripci on…Status
1…26/06/2007…Descrip1…Nuev o
1…26/06/2007…Descrip1…toma do
1…30/06/2007…Descrip1…prue bas
2…03/07/2007…Descrip1…Nuev o
2…04/07/2007…Descrip1…toma do
2…06/07/2007…Descrip1…prue bas
2…09/07/2007…Descrip1…prod uctivo
3…26/06/2007…Descrip1…nuev o
3…27/06/2007…Descrip1…toma do
3…28/06/2007…Descrip1…prue bas
3…30/06/2007…Descrip1…prod uctivo
4…01/07/2007…Descrip1…nuev o
4…05/07/2007…Descrip1…toma do
4…06/07/2007…Descrip1…prue bas
hola,bon yo no sey c ainda posso le ayudarte,procure por la funcion “DateDiff(unidade,fecha1,fecha2)” retorna la diferenca q tu quieres!!!,la sintaxe do banco SQLServer es asi, yo no sey lo banco q usted estay usando!!!.