ผู้เขียน หัวข้อ: ขอคำแนะนำเกี่ยวกับการเขียน sql ดึงรายงาน HT ครับ  (อ่าน 3518 ครั้ง)

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

ออฟไลน์ sshpt

  • Sr. Member
  • ****
  • กระทู้: 446
  • Respect: 0
    • ดูรายละเอียด
    • http://ss-hospital.no-ip.org/
จาก Code เป็นการดึงผู้ป่วย HT ที่มาตามนัด และแสดงค่า BP โดยเรียงตามตำบล หมู่ เลขที่บ้าน จากน้อยไปมาก
แต่ติดปัญหาตรงที่
1.  เรียงตามหมู่ครับ เป็นแบบนี้ครับ 1,10,11,12...,2,20,21... ต้องการให้เป็น 1,2,3...ต้องทำไงครับ (เลขที่บ้านก็เป็นเหมือนกันครับ)
2.  ถ้าจะทำรายงานให้ USER ให้ก็ติดตรง  where oa.nextdate between '2007-10-24' and '2007-10-24' and vn.vstdate between '2007-10-24' and '2007-10-24' and oa.clinic="002"
คือมีวันที่ให้เลือกตั้ง 2 คู่ช่วงเวลา ผมทำได้แค่ 1 คู่ช่วงเวลาครับ ขอคำแนะนำด้วยครับ


select vn.vn,oa.hn,oa.nextdate,concat(pt.pname,pt.fname,"   ",pt.lname) as pt_name,pt.addrpart,pt.moopart,ta.full_name,concat(vn.age_y," - ",vn.age_m," - ",vn.age_d) as pt_age,concat(os.bpd," / ",os.bps) as bpds

from oapp oa

left outer join vn_stat vn on vn.hn=oa.hn
left outer join patient pt  on pt.hn=oa.hn
left outer join thaiaddress ta on ta.addressid=concat(pt.chwpart,pt.amppart,pt.tmbpart)
left outer join opdscreen os on os.vn=vn.vn


where oa.nextdate between '2007-10-24' and '2007-10-24' and vn.vstdate between '2007-10-24' and '2007-10-24' and oa.clinic="002"

order by ta.addressid,pt.moopart,pt.addrpart asc

รพ.เสิงสาง จ.นครราชสีมา  (ขนาด 30 เตียง)  Server IBM eServer xSeries 226 
CPU Xeon 3.0 GHz.  SISC-HD 73 Gb. X 2  ECC-Ram 512 Mb. X 2
ขึ้นระบบโดยทีม BMS เดือน เมษายน 2550
OS CentOS 5.1 MySQL 5.1.23-rc  HosXP V.3.51.9.23 เมื่อ 25 กย. 51
ss-hospital@hotmail.com   >>>   http://ss-hospital.no-ip.org/

ออฟไลน์ nuttavut

  • Hero Member
  • *****
  • กระทู้: 2,634
  • Boom-Beam
  • Respect: +15
    • ดูรายละเอียด
    • โรงพยาบาลวิเชียรบุรี
Re: ขอคำแนะนำเกี่ยวกับการเขียน sql ดึงรายงาน HT ครับ
« ตอบกลับ #1 เมื่อ: ธันวาคม 26, 2007, 19:14:10 PM »
0
ลองเอารายงานตัวนี้ไปศึกษาครับ...คล้ายๆกันครับ
..Wichianburi Hospital  Phetchabun ..
Mr.Nuttavut   System Admin,Programer
Master:: HP DL380 G7 RAM 24GB Raid5 CentOS5.2  Percona 5.1.45
Slave::HP ProLiant ML150G3 Xeon Raid1  CentOS5.2   ,Percona 5.1.45
HOSxP 3.55.7.14, LIS (iLab),PACS
Tel. 0-5692-8169 ต่อ 180  | รพ. ขนาด 150+ เตียง |17 สอ. HOSxP_PCU |BMS Datacenter 18 node |
WWW : http://wichianhos.thaieasydns.com
|..ดูแลห่วงใย ใส่ใจบริการ รักษาได้มาตรฐาน พัฒนางานสู่ความเป็นเลิศ ..|   PDS Project  |  การนำเข้า Script คลิก

ออฟไลน์ sshpt

  • Sr. Member
  • ****
  • กระทู้: 446
  • Respect: 0
    • ดูรายละเอียด
    • http://ss-hospital.no-ip.org/
Re: ขอคำแนะนำเกี่ยวกับการเขียน sql ดึงรายงาน HT ครับ
« ตอบกลับ #2 เมื่อ: ธันวาคม 27, 2007, 08:40:45 AM »
0
ตัวรายงาน DM ที่ผมเคย Post ไว้มันก็ยังไม่ถูกต้องครับ ผมลองแล้ว วันที่ 19 มีผู้ป่วยนัด 164 แต่แสดงในรายงานแค่ 3 รายเองครับ

 ;D ;D
รพ.เสิงสาง จ.นครราชสีมา  (ขนาด 30 เตียง)  Server IBM eServer xSeries 226 
CPU Xeon 3.0 GHz.  SISC-HD 73 Gb. X 2  ECC-Ram 512 Mb. X 2
ขึ้นระบบโดยทีม BMS เดือน เมษายน 2550
OS CentOS 5.1 MySQL 5.1.23-rc  HosXP V.3.51.9.23 เมื่อ 25 กย. 51
ss-hospital@hotmail.com   >>>   http://ss-hospital.no-ip.org/

ออฟไลน์ woravet

  • Sr. Member
  • ****
  • กระทู้: 414
  • Respect: +12
    • ดูรายละเอียด
Re: ขอคำแนะนำเกี่ยวกับการเขียน sql ดึงรายงาน HT ครับ
« ตอบกลับ #3 เมื่อ: ธันวาคม 28, 2007, 17:16:06 PM »
0
ผมว่าคุณใช้เงื่อนไขของวันนัด+วันมาตรวจ
ทำให้เกิดปัญหา ถ้านัดแล้วไม่มาตรวจหล่ะครับ
ผมว่าน่าจะเป็น
select vn.vn,oa.hn,oa.nextdate,concat(pt.pname,pt.fname,"   ",pt.lname) as pt_name,pt.addrpart,right(concat('0',pt.moopart),2) as moopart,ta.full_name,concat(vn.age_y," - ",vn.age_m," - ",vn.age_d) as pt_age,concat(os.bpd," / ",os.bps) as bpds

from oapp oa
left outer join vn_stat vn on vn.hn=oa.hn
left outer join patient pt  on pt.hn=oa.hn
left outer join thaiaddress ta on ta.addressid=concat(pt.chwpart,pt.amppart,pt.tmbpart)
left outer join opdscreen os on os.vn=vn.vn

where (oa.nextdate between '2007-10-24' or '2007-10-24' and vn.vstdate between '2007-10-24' )and '2007-10-24' and oa.clinic="002"

order by ta.addressid,moopart,pt.addrpart asc

ลองเปลี่ยนตรงช่วงสีแดงดูครับ น่าจะพอใช้ได้
รพ.บึงสามัคคี จ.กำแพงเพชร
*********************
อ.สุชัยและคณะ ขึ้นระบบ 29 ตค.49(Linux+Fedara 5)
*********************
ปัจจุบัน
HOSxP version 3.53.4.27
Server:Windows XP SP2,MySQL 5
Client ประมาณ 15 เครื่อง

ออฟไลน์ SrWooD

  • Hero Member
  • *****
  • กระทู้: 1,024
  • Respect: +1
    • ดูรายละเอียด
Re: ขอคำแนะนำเกี่ยวกับการเขียน sql ดึงรายงาน HT ครับ
« ตอบกลับ #4 เมื่อ: ธันวาคม 28, 2007, 23:49:09 PM »
0
หรือจะลองแบบนี้ครับ

แก้ปัญหาได้ทั้ง 2 ส่วนหรือไม่ลองดูครับ

โค๊ด: SQL
  1. SELECT oa.hn,oa.nextdate,concat(pt.pname,pt.fname,"   ",pt.lname) AS pt_name,pt.addrpart,
  2. RIGHT(concat('0',pt.moopart),2) AS moopart,ta.full_name,concat(vn.age_y," - ",vn.age_m," - ",vn.age_d) AS pt_age,concat(os.bpd," / ",os.bps) AS bpds
  3. FROM oapp oa
  4. LEFT OUTER JOIN vn_stat vn ON vn.hn=oa.hn
  5. LEFT OUTER JOIN patient pt  ON pt.hn=oa.hn
  6. LEFT OUTER JOIN thaiaddress ta ON ta.addressid=vn.aid
  7. LEFT OUTER JOIN opdscreen os ON os.vn=vn.vn
  8. WHERE oa.nextdate BETWEEN '2007-10-24' AND '2007-10-24' AND vn.vstdate =oa.nextdate AND oa.clinic="002"
  9. ORDER BY ta.addressid,moopart,pt.addrpart
โรงพยาบาลโพธิ์ทอง จังหวัดอ่างทอง