sql >> Database >  >> RDS >> Sqlserver

Hoe maak je een SQL-lusquery om het verschil tussen waarden te controleren?

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

Zoiets zou voor jou moeten werken. Het is een cursor die gewoon door al uw kolommen loopt om datum en tijd te vergelijken. Je kunt alles invoeren wat je wilt doen in het gedeelte met opmerkingen na het if-statement.




  1. Postgresql-connectoren met VC++

  2. Verschil in aantal rijen in twee tabellen

  3. SQL selecteer gegevens uit meerdere tabellen

  4. Hoe DB-verzoeken onderscheppen? (MySQL)