Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/05/2008, 09:41
Avatar de flaviovich
flaviovich
 
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Re: ayuda con esta query.

Mira, con esto ya tienes bastante, esta para que lo termines:
Código:
select distinct B.patente, B.idbus, H.fechahora, isnull(H.idlinea,0) [codestado]
into prueba
from bus B
inner join historial_estadoactualbus H on H.idbus=B.idbus 
order by B.patente, H.fechahora

DECLARE
    @idbus int,
    @fechahora datetime,
    @codestado int,
    @fechabase datetime
    @codestant int,

DECLARE cr_chkHora CURSOR FOR
    select idbus, fechahora, codestado from prueba
FOR READ ONLY

OPEN cr_chkHora
FETCH NEXT FROM cr_chkHora INTO @idbus, @fechahora, @codestado

SELECT @fechabase = DATEADD(mi, -DATEPART(mi,@fechahora), @fechahora)
SELECT @fechabase = DATEADD(ss, -DATEPART(ss,@fechabase), @fechabase)
SELECT @codestant = @codestado

WHILE @@FETCH_STATUS = 0
BEGIN
    IF @fechahora < DATEADD(mi, 30, @fechabase)
    BEGIN
        FETCH NEXT FROM cr_chkHora INTO @idbus, @fechahora, @codestado
        SELECT @fechabase = DATEADD(mi, -DATEPART(mi,@fechahora), @fechahora)
        SELECT @fechabase = DATEADD(ss, -DATEPART(ss,@fechabase), @fechabase)
        IF @codestant = @codestado
            DELETE FROM prueba WHERE idbus=@idbus AND fechahora=@fechahora AND codestado=@codestado
    END
END

CLOSE cr_chkHora
DEALLOCATE cr_chkHora
No te acostumbres a que otros hagan tu tarea!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.