sql >> Databáze >  >> RDS >> Sqlserver

Jak vytvořit dotaz sql smyčky pro kontrolu rozdílu mezi hodnotami?

DECLARE @idFrom as int,
        @idTo as int,
        @gpsDateFrom as datetime,
        @gpsDateTo as datetime
DECLARE VehicleCursor CURSOR FAST_FORWARD FOR 
SELECT  vehicle_gps_id, 
        datetimeCol
FROM    yourtable
ORDER BY vehicle_gps_id
OPEN VehicleCursor FETCH NEXT FROM VehicleCursor INTO @idFrom, @gpsDateFrom
    FETCH NEXT FROM VehicleCursor INTO @idTo, @gpsDateTo
    WHILE @@FETCH_STATUS = 0 BEGIN 
        IF DATEDIFF(MI,@gpsDateFrom,@gpsDateTo) >5
        BEGIN
            --Break (your code here)
        END
        SET @idFrom = @idTo
        SET @gpsDateFrom = @gpsDateTo
        FETCH NEXT FROM VehicleCursor INTO @idTo, @gpsDateTo
    END 
CLOSE VehicleCursor 
DEALLOCATE VehicleCursor

Něco takového by vám mělo fungovat. Je to kurzor, který právě prochází všemi vašimi sloupci a porovnávají datum a čas. Do komentované sekce za příkazem if můžete zadat cokoli, co chcete udělat.




  1. Zápis souboru csv do databáze SQL Server pomocí pythonu

  2. Povolená velikost paměti 67108864 bajtů je vyčerpána

  3. SQL Server ekvivalentní ORACLE INSTR

  4. Jak seskupit podle user_id a objednat podle desc