ขอสอบถามเกี่ยวกับการ query ในการคำนวณเวลาด้วยครับ

สมมติ มีการเก็บข้อมูลการมารับบริการ
มีค่า
id(เปลี่ยนไปเรื่อยๆจากคนที่เข้ามารับบริการ)
customer_id (รหัสประจำตัวของลูกค้า)
customer_name
dayin(date)
times(timeเก็บค่าเป็น HH:MM:SS)

หลังจากรับบริการก็จะทำการเก็บค่าไปในตารางเรื่อยๆ โดยที่id จะมีการเปลี่ยนใหม่ทุกครั้งที่รับบริการเรียงตามลำดับไปเรื่อยๆ

โจทย์ประมาณว่า ต้องการหาคนที่รับบริการซ้ำภายใน 6 ชั่วโมงหลังจากมารับบริการครั้งแรก ไม่ทราบว่าผมควรจะเขียนยังไงดีครับ รบกวนแนะนำแนวทางด้วยครับ
แก้ไขข้อความเมื่อ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 3
ทำprogram / store procedure อ่านทีละRecord เช็คเงื่อนไขแล้ว insert table ใหม่ที่ละอัน

select column1 ,  2  , 3  from  table
where datein between date1 and date2
order by datein desc , times desc

( เลือก ข้อมูล ตั้งต้นที่จะเอาไปหา record อีกชุดที่เกิดภายใน 6 ชม .
อันนี้มองว่า record ที่เกิดใหม่น่าสนใจกว่าของเก่า  lastupdate แล้วไปหา date - 6 ชม . )

fetch   /  loop
อันนี้สร้างตัวแปรวันที่ (1) เอา datetime มารวมกัน
      สร้างตัวแปรวันที่ (2) = วันที่ (1) ใช้ร่วมกับ DateAdd( hour , -6 , วันที่(1) )
ที่นี้ก็ select  customer_id , count(*) from table
where datein betweeen วันที่ (1) and วันที่ (2)   /* เนื่องจากแยก column date , time ก็ต้องทำตัวแปรแยกนะ )
and customer = @customer ( ส่งตัวแปรมาจาก Fetch )
group by customer_id
having on count(*) > 1  (ถ้าตัวแปร  วันที่ (1)  อยู่ในช่วงนี้ก็ใช้ 1 รวมตัวเอง  ถ้าไม่อยู่criteria ก็ 0
ถ้าสนใจจำนวนครั้งเยอะๆ ในการตัดสินใจ  ก็ insert count(*) เข้า table ไปเลย )


*** ถ้าfetch/loop ไม่เป็นไม่ต้องถามต่อนะ ไม่มีทางลัดให้
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่