
這樣子該如何去操作,有沒有大佬給個思路或者例子啥的 T~T
uj5u.com熱心網友回復:
既要算“從進到出”的時間,也要算“從出到進”的時間嗎,只要相鄰的行ZT不一樣都要計算時間差嗎uj5u.com熱心網友回復:
算 出到進 這個中間時間就可以了,主要是這方面的計算不知道怎么做
uj5u.com熱心網友回復:
去掉相鄰的進狀態資料也可以uj5u.com熱心網友回復:
有一個比較麻煩的思路,拋磚引玉select DATEDIFF(HH,xx1.[TIME],xx2.[TIME]) from
(一模一樣的子查詢) xx1,
(一模一樣的子查詢) xx2
where xx1.進出次數=xx2.進出次數 and xx1.ZT='出' and xx2.ZT='進'
子查詢里查出一張表,內容是表B加上一列第幾次進出的欄位,可以用row_number() over(partition by ZT order by [TIME])實作
這樣就可以查出“第N次出”與“第N次進”之間相差了幾個小時了
select xx1.*,DATEDIFF(hh,xx1.[TIME],xx2.[TIME]) from
(select *,row_number() over(partition by ZT order by [TIME]) 進出次數 from #TA) xx1,
(select *,row_number() over(partition by ZT order by [TIME]) 進出次數 from #TA) xx2
where xx1.進出次數=xx2.進出次數 and xx1.ZT='出' and xx2.ZT='進'
至于那個AB的判斷,感覺可以試試這樣,先用DATEPART(HH,[TIME])獲取表B里的時間欄位值是幾點,然后再用between來判斷AB對應的時間段,獲取對應的進出記錄,然后再進行進出時間差的計算
uj5u.com熱心網友回復:
感謝 我去研究下uj5u.com熱心網友回復:
select *,datediff(minute,A.time,B.time)from table A
cross apply (select top 1 time from table where A.name=name and ZT='進' and time>A.time order by time) as B
where ZT='出'
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/231332.html
標籤:疑難問題
下一篇:Python基礎求助
