SELECT 
    Main.HN,
    Main.FULLNAME AS [ชื่อ-นามสกุล],
    Main.[REQ ITEM CODE] AS [รหัสการตรวจ],
    Main.[REQ ITEM NAME] AS [ชื่อการตรวจ],
    Main.Current_Checkin AS [วันที่ตรวจครั้งนี้],
    Main.Last_Checkin AS [วันที่ตรวจครั้งก่อนหน้า],
    Main.Days_Diff AS [ระยะห่าง (วัน)],
    Main.[DORTOR NAME] AS [แพทย์ผู้สั่งตรวจ],
    Main.[WARD NAME] AS [หน่วยงาน/วอร์ด],
    Main.LN AS [Lab Number (ครั้งนี้)]
FROM (
    /* ส่วนดึงข้อมูลและหาประวัติการตรวจครั้งก่อนหน้าโดยใช้ Window Function LAG() */
    SELECT 
        HN,
        FULLNAME,
        [DORTOR NAME],
        [WARD NAME],
        LN,
        [REQ ITEM CODE],
        [REQ ITEM NAME],
        [REQ ITEM CHECKIN DATETIME] AS Current_Checkin,
        
        -- หาเวลา Checkin ของการตรวจครั้งก่อนหน้า โดยแบ่งกลุ่มตาม HN และ รหัสการตรวจ
        LAG([REQ ITEM CHECKIN DATETIME]) OVER (
            PARTITION BY HN, [REQ ITEM CODE] 
            ORDER BY [REQ ITEM CHECKIN DATETIME]
        ) AS Last_Checkin,
        
        -- คำนวณความต่างของวันระหว่างครั้งปัจจุบันกับครั้งก่อนหน้า
        DATEDIFF(day, 
            LAG([REQ ITEM CHECKIN DATETIME]) OVER (
                PARTITION BY HN, [REQ ITEM CODE] 
                ORDER BY [REQ ITEM CHECKIN DATETIME]
            ), 
            [REQ ITEM CHECKIN DATETIME]
        ) AS Days_Diff
    FROM view_lab_statistic_Order_List
    WHERE 1=1
      -- ตัวอย่างการกรองชื่อ Test (พี่จีจีเปลี่ยนตรงนี้ได้เลยครับ)
      AND [REQ ITEM CODE] = 'GLUCOSE' 
      
      -- กำหนดช่วงวันที่ต้องการดึงรายงาน (เปลี่ยนช่วงวันที่ได้ตามต้องการ)
      AND [REQ ITEM CHECKIN DATETIME] BETWEEN '2025-10-01' AND '2025-12-31'
) AS Main
WHERE Main.Days_Diff IS NOT NULL 
      AND Main.Days_Diff BETWEEN '1'AND '90'-- เงื่อนไขมีการตรวจซ้ำภายใน 90 วัน
ORDER BY Main.Days_Diff ASC, Main.HN;

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: