คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 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 ไม่เป็นไม่ต้องถามต่อนะ ไม่มีทางลัดให้
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 ไม่เป็นไม่ต้องถามต่อนะ ไม่มีทางลัดให้
แสดงความคิดเห็น
ขอสอบถามเกี่ยวกับการ query ในการคำนวณเวลาด้วยครับ
มีค่า
id(เปลี่ยนไปเรื่อยๆจากคนที่เข้ามารับบริการ)
customer_id (รหัสประจำตัวของลูกค้า)
customer_name
dayin(date)
times(timeเก็บค่าเป็น HH:MM:SS)
หลังจากรับบริการก็จะทำการเก็บค่าไปในตารางเรื่อยๆ โดยที่id จะมีการเปลี่ยนใหม่ทุกครั้งที่รับบริการเรียงตามลำดับไปเรื่อยๆ
โจทย์ประมาณว่า ต้องการหาคนที่รับบริการซ้ำภายใน 6 ชั่วโมงหลังจากมารับบริการครั้งแรก ไม่ทราบว่าผมควรจะเขียนยังไงดีครับ รบกวนแนะนำแนวทางด้วยครับ