ผู้เขียน หัวข้อ: รบกวนผู้รู้ทั้งหลายครับ เรื่องรายงาน  (อ่าน 2883 ครั้ง)

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

ออฟไลน์ yord

  • Hero Member
  • *****
  • กระทู้: 1,952
  • PATTANI HOSPITAL
  • Respect: +2
    • ดูรายละเอียด
    • http://www.pattanihos.com
เป็นรายงาน เอกสารติดตามผป.ครับ สั่งเรียกรายงานขึ้นมา ก็ out of memory ครับ
แต่ถ้าเปิดที่ report designer ก็ไม่ช้าครับ ไม่ทราบว่าต้องแก้ไขคำสั่งอย่างไรครับ ???
ขอบคุณครับ ;D ;D
hn := InputQuery('กรุณาใส่เลข HN', hn);

   if (hn = '')then
   repeat
   ShowMessage('กรุณาใส่เลข HN');
   hn := InputQuery('กรุณาใส่เลข HN', hn);
   until(hn <> '');

   ChangeReportSQL('select p.hn,concat(p.pname,p.fname,"  ",p.lname) as pt_name, '+
'p.cid,p.birthday,p.informname,p.informaddr,p.hometel, '+
'concat(p.addrpart," ม. ",p.moopart," ต. ",t3.name," อ. ",t2.name," จ. ",t1.name) as fulladdress '+
'from patient p '+
        'left outer join thaiaddress t1 on t1.chwpart=p.chwpart and '+
        't1.amppart="00" and t1.tmbpart="00" '+
        'left outer join thaiaddress t2 on t2.chwpart=p.chwpart and '+
        't2.amppart=p.amppart and t2.tmbpart="00" '+
        'left outer join thaiaddress t3 on t3.chwpart=p.chwpart and '+
        't3.amppart=p.amppart and t3.tmbpart=p.tmbpart '+
'where p.sex = "1" and p.hn in ('+hn+')  '+
'group by p.hn '+
'order by p.hn limit 1 ');
Mr.Yordying Kongkachan (yord02@gmail.com)
ADMIN PATTANI HOSPITAL  http://www.pattanihos.com
เริ่มใช้ HOSxP พฤศจิกายน 2549
(Master)IBM X3650 M3 QuardCord 3.06 1 CPU 20 GBs. of Ram (up to 68 GBs 29/06/56)
Linux 64bit MySQL 5.5.21 64bit (ด้วยความช่วยเหลือของ อ.บอยครับ)
(Slave1)HP ProLiant ML350 G6 Xeon E5530 2.04 20 GBs. Ram (up to 54 GBs 27/06/56)
Linux 64bit MySQL 5.1.30 64bit Database v.3.56.4.9 (29/06/56) client v.3.56.3.19

ออฟไลน์ เกื้อกูล ครับ..

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
Re: รบกวนผู้รู้ทั้งหลายครับ เรื่องรายงาน
« ตอบกลับ #1 เมื่อ: มีนาคม 25, 2011, 15:55:21 PM »
0
until(hn <> '');  น่ากลัวสำหรับผม
Implement  HOSxP  Start 2548 ---> NOW!
Station : 140 Client   V.3 Version  3.67.7.8
Server  : CENTOS 7 +MySQL maria 10.x.x

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: รบกวนผู้รู้ทั้งหลายครับ เรื่องรายงาน
« ตอบกลับ #2 เมื่อ: มีนาคม 25, 2011, 15:59:39 PM »
0

hn := InputQuery('กรุณาใส่เลข HN', hn);

   if (hn = '')then

   repeat
   ShowMessage('กรุณาใส่เลข HN');
   hn := InputQuery('กรุณาใส่เลข HN', hn);
   until(hn <> '');

   ChangeReportSQL('select p.hn,concat(p.pname,p.fname,"  ",p.lname) as pt_name, '+
'p.cid,p.birthday,p.informname,p.informaddr,p.hometel, '+
'concat(p.addrpart," ม. ",p.moopart," ต. ",t3.name," อ. ",t2.name," จ. ",t1.name) as fulladdress '+
'from patient p '+
        'left outer join thaiaddress t1 on t1.chwpart=p.chwpart and '+
        't1.amppart="00" and t1.tmbpart="00" '+
        'left outer join thaiaddress t2 on t2.chwpart=p.chwpart and '+
        't2.amppart=p.amppart and t2.tmbpart="00" '+
        'left outer join thaiaddress t3 on t3.chwpart=p.chwpart and '+
        't3.amppart=p.amppart and t3.tmbpart=p.tmbpart '+
'where p.sex = "1" and p.hn in ('+hn+')  '+
'group by p.hn '+
'order by p.hn limit 1 ');
ตัดตรงสีแดงออกก็ได้นะครับ
แปลกใจตรงที่ต้อง group by และ order by แถม limit 1 อีก ใส่ทำไมครับ ในเมื่อ HN นี้รับค่ามาแค่ HN เดียว

หรือจะเปลี่ยนเป็น
   repeat
   ShowMessage('กรุณาใส่เลข HN ให้ถูกต้อง');
   hn := InputQuery('กรุณาใส่เลข HN', hn);
   until GetSQLStringData('select count(*) from patient where hn="'+hn+'" ') > 0;

ส่วนอื่น ๆ ยังไม่ได้ลอง run คำสั่ง เดี๋ยวดูก่อนนะครับ
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ yord

  • Hero Member
  • *****
  • กระทู้: 1,952
  • PATTANI HOSPITAL
  • Respect: +2
    • ดูรายละเอียด
    • http://www.pattanihos.com
Re: รบกวนผู้รู้ทั้งหลายครับ เรื่องรายงาน
« ตอบกลับ #3 เมื่อ: มีนาคม 25, 2011, 16:12:05 PM »
0
ตรงที่ต้อง group by และ order by แถม limit 1 อีก
ผมลองน่ะครับ เผื่อจะทำให้เร็วขึ้น แต่..ก็เหมือนเดิม ครับ อิอิ ;D
Mr.Yordying Kongkachan (yord02@gmail.com)
ADMIN PATTANI HOSPITAL  http://www.pattanihos.com
เริ่มใช้ HOSxP พฤศจิกายน 2549
(Master)IBM X3650 M3 QuardCord 3.06 1 CPU 20 GBs. of Ram (up to 68 GBs 29/06/56)
Linux 64bit MySQL 5.5.21 64bit (ด้วยความช่วยเหลือของ อ.บอยครับ)
(Slave1)HP ProLiant ML350 G6 Xeon E5530 2.04 20 GBs. Ram (up to 54 GBs 27/06/56)
Linux 64bit MySQL 5.1.30 64bit Database v.3.56.4.9 (29/06/56) client v.3.56.3.19