BMS-HOSxP Community
HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: Hos_Wang ที่ กรกฎาคม 11, 2011, 16:23:01 PM
-
ขอถามเรื่อง sql หน่อยน่ะครับ คือผมต้องการ query คนไข้ห้องฟันที่มาใหม่ในปีครับ ผมเขียน script ดังนี้ครับ
SELECT * FROM dtmain d
LEFT OUTER join vn_stat v on v.vn=d.vn
WHERE d.vstdate BETWEEN "2011-05-01" and "2011-05-31"
and v.count_in_year=0
GROUP BY d.dn
ORDER BY d.vstdate
แต่...รู้สึกว่าคนไข้มาน้อยผิดปกติ ไม่รู้ผมพลาดตรงไหนหรือปล่าว ขอให้ท่านผู้รู้ลองตรวจสอบให้หน่อยน่ะครับผม หากไม่ถูกอย่างไรก็ต้องขอคำแนะนำด้วยน่ะครับ
-
ขอถามเรื่อง sql หน่อยน่ะครับ คือผมต้องการ query คนไข้ห้องฟันที่มาใหม่ในปีครับ
....................................................
แต่...รู้สึกว่าคนไข้มาน้อยผิดปกติ
... เนื่องจากไปใช้เงื่อนไขคนไข้ใหม่ในปีมาจาก vn_stat ครับ
เพราะ vn_stat จะเก็บข้อมูลของการมารับบริการทุกแผนก ไม่ใช่เฉพาะห้องฟันครับ
ทำให้บางครั้ง count_in_year ใน vn_stat ที่มีค่าไม่เท่ากับ 0 เช่น count_in_year ใน vn_stat เป็น 1, 2, 3, .... อาจเป็นคนไข้ใหม่ของห้องฟันก็ได้ ถ้าการมาในครั้งก่อนๆ เป็นการมารับบริการที่แผนกอื่น
ที่ไม่ใช่ห้องฟันครับ .... :D ....
-
... ลองใช้เปลี่ยนไปใช้ count_in_year = 0 จากตาราง dt_list แทนนะครับ ... :D ....
select * from dtmain d1
left outer join dt_list d2 on d2.vn = d1.vn
where d1.vstdate between '2011-05-01' and '2011-05-31'
and d2.count_in_year = 0
group by d1.dn
order by d1.vstdate
-
... แต่ว่าการใช้ข้อมูล จากตาราง dt_list มีข้อต้องระวังนะครับ
คือ ข้อมูลที่สามารถนำมาใช้ได้อย่างถูกต้องของ count_in_year ,count_in_month, count_in_day คือข้อมูลที่มีค่า เท่ากับ 0 หรือครั้งใหม่ เท่านั้นครับ
ถ้าค่าที่มากกว่า 0 อาจเป็นข้อมูลที่ไม่ถูกต้องก็ได้ครับ
เนื่องจากผมคิดว่า อ.mn คงใช้คำสั่งนับ vn ก่อนหน้าเหมือนกับที่ใช้เก็บข้อมูลใน vn_stat ครับ ซึ่งตาราง vn_stat นั้น ใน 1 vn จะมีอยู่แค่ record เดียว ทำให้นับได้ถูกต้อง ไม่เป็นปัญหาอะไร
แต่ในตาราง dt_list น่าจะนับ vn ก่อนหน้ามาจากตาราง dtmain ครับ
ซึ่งในตาราง dtmain ใน 1 vn อาจจะมีข้อมูลอยู่หลาย record ได้ถ้ามีการทำหัตถการมากกว่า 1 รายการ
กรณีนี้ จะทำให้ข้อมูลใน count_in_year ,count_in_month, count_in_day ของตาราง dt_list ผิดพลาดครับ เพราะจะเท่ากับ record ทุก record ของ HN นี้ที่มาก่อนหน้า
คิดว่า อ.mn คงจะลืม group by vn น่ะครับ ... :D ...
... ถือโอกาสนี้ ฝาก อ.mn ช่วยแก้ไขตาราง dt_list ให้ด้วยเลยนะครับผม .... :D :D ...
-
ขอบคุณอ.ขวดมากน่ะคร้าบบบบบ ได้ผลอย่างไรจะมาบอกน่ะครับ
-
ใน dt_list ยังมีปัญหาการนับ เหมือนที่อ.ขวดบอกค่ะ ver 3.54.9.29
รบกวนอ.mn ช่วยแก้ไขให้ด้วยนะคะ
ขอบพระคุณมากค่ะ