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

SQL Server DATEDIFF vypočtený sloupec mezi řádky

Pro tento účel vám doporučuji použít pohled:

CREATE VIEW Table1_vw 
AS
WITH cte AS (
    SELECT  *, 
            ROW_NUMBER() OVER (ORDER BY RecordTime) AS rn
    FROM    dbo.Table1
)
SELECT  mc.RecordTime,
        mc.Running,
        mc.Fault,
        DATEDIFF(second, mc.RecordTime, mp.RecordTime) Diff
FROM cte mc
LEFT JOIN cte mp
ON mc.rn = mp.rn - 1

Protože používáte SQL Server 2012 můžete použít LEAD funkce:

CREATE VIEW Table1_vw 
AS
SELECT  RecordTime,
        Running,
        Fault,
        DATEDIFF(second,RecordTime,LEAD(RecordTime,1,NULL) OVER (ORDER BY RecordTime ASC) ) as Diff
FROM Table1
GO


  1. příkazového řádku přihlášení jako jiný uživatel

  2. MySQL Math a COUNT(*) v LIMIT

  3. jak ověřit datový typ celého čísla v proceduře Oracle

  4. Formulář PHP vrací Upozornění:Převod pole na řetězec