3

WITH emp_info AS (
    SELECT emp_no, emp_name_ch, emp_dept, class_id, class_no
    FROM AUSZDLMS.i_facs_employee
    WHERE emp_dept LIKE 'MS01%'
),
ptms_info AS (
    SELECT emp_no, 
           card_date, 
           card_time,
           card_time AS F1_SJ,
           import_date, 
           location_id, 
           in_out,
           TO_TIMESTAMP(TO_CHAR(card_date, 'YYYY-MM-DD') || ' ' || card_time, 'YYYY-MM-DD HH24:MI:SS') AS card_timestamp  -- 将 card_time 转换为 24 小时制
    FROM AUSZDLMS.h_ata_record
    WHERE card_date >= current_date - 1  -- 查询当天数据
),
ptms_combined AS (
    SELECT p.*, 
           LAG(card_timestamp) OVER (PARTITION BY emp_no ORDER BY card_timestamp) AS prev_card_timestamp
    FROM ptms_info p
    WHERE p.location_id NOT LIKE 'F1-3F%'
      AND p.location_id NOT LIKE 'F1-4F%'
      AND p.location_id NOT LIKE 'F2-3F%'
      AND p.location_id NOT LIKE 'F2-4F%'
)
SELECT emp_no,
       emp_name_ch,
       emp_dept,
       class_id,
       class_no,
       card_date,
       card_time,
       F1_SJ,
       prev_card_timestamp,
       EXTRACT(EPOCH FROM (card_timestamp - prev_card_timestamp)) / 60 AS time_diff_minutes,
       location_id,
       in_out
FROM ptms_combined
WHERE prev_card_timestamp IS NOT NULL
  AND EXTRACT(EPOCH FROM (card_timestamp - prev_card_timestamp)) / 60 > 30
ORDER BY emp_no, card_date, F1_SJ;
全部评论

相关推荐

01-08 12:01
门头沟学院 Java
冰炸橙汁_不做oj版:不接好运
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务