เพิ่มเติมเล็กน้อยครับ
เนื่องจาก เจ้าหน้าที่ลงข้อมูลไม่ครบถ้วน บางครั้งไม่ได้ลง ประเภทคลินิก เช่น อายุรกรรม ศัลยกรรม จักษุ เป็นต้น ทำให้ field spclty เป็นค่าว่าง ผมจึงออกแบบให้ขณะที่เรียกรายงานตัวนี้
ตรวจสอบก่อนว่า field spclty ของตาราง referout เป็นค่าว่าง หรือไม่ ถ้าเป็น จะ update field spclty โดยตรวจสอบว่าเป็น OPD หรือ IPD ถ้าเป็น OPD ให้ดึง field spclty ของตาราง vn_stat ส่วน IPD จะดึงจาก field spclty ของตาราง an_stat
ข้อควรระวัง อย่าใจร้อนใช้กับระบบจริง ทดสอบใน Standalone ก่อนนะครับ ที่สำคัญอย่าลืม Backup DB
ตัวอย่าง Code ที่ใช้ครับ
unit ReferReport;
procedure main;
begin
zquery.close;
zquery.sql.text:='update referout set spclty = (select an_stat.spclty from an_stat where referout.vn = an_stat.an) '+
'where refer_date > "2008-10-01" '+
'and department ="IPD" '+
'and referout.spclty is null ';
zquery.execsql;
zquery.close;
zquery.sql.text:='update referout set spclty = (select vn_stat.spclty from vn_stat where referout.vn = vn_stat.vn) '+
'where refer_date > "2008-10-01" '+
'and department ="OPD" '+
'and referout.spclty is null ';
zquery.execsql;
zquery.close;
//showmessage('Yindee');
end;
end.