2016-11-11 52 views
-5

指望我有一個主表像需要查詢 - 行帶環

======================================== 
ID NAME logtime (date time colum) 
======================================== 
1  cat  dd/mm/yyyy 10.30 

2  cat dd/mm/yyyy 9.20 

3  cat dd/mm/yyyy 9.30 

4  cat dd/mm/yyyy 7.20 

次要表像

--------------------- 
Name  improvement 
--------------------- 
cat  1 

現在我想創建一個循環

首先計算2之間的區別行,如果差異> = 1小時,則更新輔助表爲現有值+1(即2)否則將它休息。

現在計算第2'和3'rd行, 爲了計算第一2行之間的差別,如果差然後> = 1小時更新輔助表作爲現有值1,這裏答案是2

然後是3日和4日。 一旦所有的行都計算出來,然後退出循環。

任何人都可以給我一個這樣的查詢嗎?

+9

這不是代碼寫入服務。你應該編輯你的問題,以顯示你已經嘗試了什麼,以及你被困在什麼地方。 –

+0

另外,您使用的是哪個版本的sql server? –

+0

sql server 2014 – SQLadmin

回答

0
declare @timediff table(id int identity(1,1),Name varchar(50),logtime datetime) 
    insert into @timediff Select Name,logtime from timediff 

    declare @datetimeDiff int 
    declare @i int=1 
    while(@i<=(Select count(*) from @timediff)) 
    Begin 
     Select @datetimeDiff=datediff(hour,logtime, 
     (Select logtime from @timediff where [email protected]+1)) 
     from @timediff where [email protected] 
     if(@datetimeDiff>=1) 
     BEGIN 
     Select @datetimeDiff 
     --You can write your update code here 

     END 


     Set @[email protected]+2 
     END