ผมทำรายงานแล้วข้อมูลซ้ำกันครับ มาตรวจสอบดูปรากฏว่า hn ซ้ำที่ตาราง ptcardno แต่ ptcardno.cardno ต่างกัน เนื่องจากห้องบัตรใส่ทั้งเลขบัตรประชาชน และเลขต่างด้าวด้วย
เขาบอกว่าถ้าไม่ใส่จะ Error save ไม่ได้ ผมเลยลองเข้าไปลบช่องบัตรประชาชน แล้วบันทึกปรากฏว่า Error ดังรูปที่แนบมาครับ
กรณีนี้จะแก้ไขที่ Code ได้หรือเปล่าครับ ลองใส่ group by vn.hn แล้วมันเลือกตัวแรก ซึ่ง cardno ผิด
select vn.vstdate,vn.hn,vn.income,vn.uc_money,vn.paid_money,vn.remain_money,concat(pt.pname,pt.fname," ",pt.lname," ",ptc.cardno) as pt_name
from vn_stat vn
left outer join patient pt on pt.hn=vn.hn
left outer join ptcardno ptc on ptc.hn=vn.hn
where vn.pttype="13" and vn.vstdate between '2011-12-01' and '2011-12-31' and vn.remain_money<>0
order by vn.vstdate asc