ผู้เขียน หัวข้อ: ตาราง ptcardno มี hn ซ้ำกันได้หรือเปล่าครับ  (อ่าน 2893 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ panus_t

  • Hero Member
  • *****
  • กระทู้: 2,368
  • Respect: +8
    • ดูรายละเอียด
0
ตาราง ptcardno มี hn ซ้ำกันได้หรือเปล่าครับ
ผมใช้คำสั่ง
select hn,count(hn) as c_hn from ptcardno group by hn
แล้วกรอง c_hn = 2 ได้ถึง 85491 record

เวลาเขียนรายงาน hn เหล่านี้จะออก 2 บรรทัดครับ
select ipt.an,ipt.hn,ipt.regdate,ipt.regtime,ipt.dchdate,ipt.dchtime,ipt.pttype,concat(pt.pname,pt.fname,"   ",pt.lname) as pt_name,ptc.cardno,ptt.name
from ipt ipt
left outer join patient pt  on pt.hn=ipt.hn
left outer join ptcardno ptc on ptc.hn=ipt.hn
left outer join pttype ptt on ptt.pttype=ipt.pttype
where ipt.dchdate between '2008-03-18' and '2008-03-18' and ipt.ward="07"
order by ipt.dchdate asc
หรือว่าผมต้องเขียนทำสั่ง sql อย่างไรครับ

อาจจะเกิดจากการใส่เลขบัตรประชาชน และเลขที่ต่างด้าว ที่หน้าประวัติทั่วไป
ต้องการให้โปรแกรม Lock ให้คีย์อย่างใดอย่างหนึ่งได้หรือเปล่าครับ
« แก้ไขครั้งสุดท้าย: มกราคม 16, 2012, 14:35:52 PM โดย panus_t »
โรงพยาบาลเสิงสาง จ.นครราชสีมา (ขนาด  60  เตียง ปี2554)  ขึ้นระบบโดยทีมงาน BMS  เมื่อเดือนเมษายน 2551
ก่อนหน้านั้นขึ้นระบบเมื่อ 07/07/07 ฤกษ์ดี  Master Server  IBM System x3500M4  RAM ECC 24 GB. HardDisk SAS 450x3 GB. ServerRAID M1100 Series Zero RAID5  OS:CentOS 6.4  MySQLPercona : 5.5.30-30.1

ออฟไลน์ วีระวัฒน์ (เอก)

  • Hero Member
  • *****
  • กระทู้: 1,368
  • ให้ก้าวไปข้างหน้าก่อนผู้อืนอย่างน้อย 1 ก้าวเสมอ
  • Respect: +7
    • ดูรายละเอียด
Re: ตาราง ptcardno มี hn ซ้ำกันได้หรือเปล่าครับ
« ตอบกลับ #1 เมื่อ: มกราคม 16, 2012, 15:00:07 PM »
0
ได้ครับ กรณี ไม่ใช้ คนไทย
เช่น

3-5000-00028-46-5     cardtype="01"   เลขประชาชน ทั่วไป

35-0000-002846-5      cardtype="02"   เลขต่างด้าว

แก้ใหม่เป็น
select ipt.an,ipt.hn,ipt.regdate,ipt.regtime,ipt.dchdate,ipt.dchtime,ipt.pttype,concat(pt.pname,pt.fname,"   ",pt.lname) as pt_name,ptc.cardno,ptt.name
from ipt ipt
left outer join patient pt  on pt.hn=ipt.hn
left outer join ptcardno ptc on ptc.hn=ipt.hn and ptc.cardtype="01"
left outer join pttype ptt on ptt.pttype=ipt.pttype
where ipt.dchdate between '2008-03-18' and '2008-03-18' and ipt.ward="07"
order by ipt.dchdate asc
« แก้ไขครั้งสุดท้าย: มกราคม 16, 2012, 15:05:53 PM โดย CMI »
รพ.จอมทอง เชียงใหม่ ขนาด 120 เตียง  เริ่มใช้ HOSxP 1 ต.ค 2557 ขึ้นระบบโดย BMS
วีระวัฒน์ ใจอินผล  081-9609614 AIS  Email weerawatjaiinpol@gmail.com  Facebook วีระวัฒน์ ใจอินผล
Server: Xeon 4 core 2.27 GHz, CentOS 7.1 , RAM : 32 GB , HD SAS :300 GBx4 R5, MySQL MariaDB 10.0.20 64 bit