我正在向查詢銷售員狀態的表格寫入查詢,並跟蹤他們旅行的時間。作爲參考,下面是對這個問題很重要的狀態:正在製作太多表格副本
600初始值:
0旅行打破
601:上破
603:前往午餐
604:在吃午飯
我想要計算一個員工花費旅行的總時間。我能夠返回旅行時間和午餐時間使用
SELECT (cast(c1.status_change_dt as date) - cast(c2.status_change_dt as date)) as LunchTravel, C1.CREW_ID
FROM CREW_STATUS c1, CREW_STATUS c2
WHERE c1.status_id = '603' and c2.status_id = '602'
and c1.mobile_token = c2.mobile_token
同樣的休息。 Mobile_token是爲了確保它在同一天返回(每個員工每天都得到一個唯一的令牌)。
Status_change_dt是時間戳
我做同樣的事情,但其他STATUS_ID的獲得BreakTravel時間。
所以我最終得到了LunchTravel和BreakTravel,但我覺得創建4個Crew_Status是效率低下的,而且實際上運行速度很慢。
有沒有更好的方法來做到這一點?
你的模式是什麼樣的? –
你有合適的索引嗎? – GolezTrol