你的過濾條件就是獲取兩個日期差為1天的兩條記錄的時期差.
而后面的數據日期查超過1天,肯定不會有結果.
這類的數據查詢在游標里處置會更加合理,只是逐條獲取數據并和前一條比對日期差即可.
※ 引述《Severine (賽非茵)》之銘言:
: DB: MS SQL
: 估狗了很久 剛剛也在本版搜尋了一下類似問題 找不太到..
: 只好發文問一下!
: 我想要取得每筆紀錄的時間間隔 請問該怎麼做呢?
: =========================================================
: 問完以後改寫了一個blueshop的範例
: DECLARE @Temp table (Date datetime, Orders int)
: INSERT INTO @Temp VALUES ('2012/2/1',1000)
: INSERT INTO @Temp VALUES ('2012/2/2',800)
: INSERT INTO @Temp VALUES ('2012/2/3',3500)
: INSERT INTO @Temp VALUES ('2012/2/4',4000)
: SELECT
: T1.Date ,
: ISNULL(datediff(day,T2.Date ,T1.Date),null) AS daydiff
: FROM @Temp AS T1
: LEFT JOIN @Temp AS T2 ON T1.Date = DATEADD(d,1,T2.Date)
: ===============以上可以算出後四筆的相差時間==============
: 但是以下就不行,想必是對left join用法的理解錯誤
: DECLARE @Temp table (Date datetime, Orders int)
: INSERT INTO @Temp VALUES ('2012/2/1',1000)
: INSERT INTO @Temp VALUES ('2012/2/12',800) <=修改過
: INSERT INTO @Temp VALUES ('2012/2/13',3500) <=
: INSERT INTO @Temp VALUES ('2012/2/24',4000) <=
: SELECT
: T1.Date ,
: ISNULL(datediff(day,T2.Date ,T1.Date),null) AS daydiff
: FROM @Temp AS T1
: LEFT JOIN @Temp AS T2 ON T1.Date = DATEADD(d,1,T2.Date)
: ========================================================
: 請問該如何修改呢? 謝謝 ><