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;
To embed this project on your website, copy the following code and paste it into your website's HTML: