06/05/2008, 09:41
|
| | | Fecha de Ingreso: agosto-2005 Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 4 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. |