ผู้เขียน หัวข้อ: เรียนถาม อาจารย์ทุกท่าน เรื่อง คำสั่ง Sql  (อ่าน 7351 ครั้ง)

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

ออฟไลน์ Neo

  • Hero Member
  • *****
  • กระทู้: 1,703
  • The Kop
  • Respect: +6
    • ดูรายละเอียด
มีโจทย์อยู่ว่า อยากได้คนไข้ที่มาด้วยโรคหัวใจ (I300 - I529) แต่คนไข้ต้องมีใช่คนไข้ในคลินิกพิเศษ

คำสั่งที่ผมเขียนครับ เขียนต่อให้หน่อย
select p.clinic,vn.hn,concat(vn.pdx,'  ',i.name) as pdxname,
concat(p.pname,p.fname,'  ',p.lname) as fullname,p.informaddr,vn.age_y from vn_stat vn
inner join patient p on p.hn=vn.hn
inner join icd101 i on i.code=vn.pdx
where vn.pdx between 'I300' and 'I529' and vn.vstdate between '2008-10-01' and '2009-03-31'
group by vn.hn
order by vn.hn asc
Mr.Chayanut Suwamat
E-Mail=>Mr.Chayanut9@Gmail.com
BMS DATACENTER ระดับจังหวัดบึงกาฬ Start 1 พ.ย. 2554
สำนักงานสาธารณสุขจังหวัดบึงกาฬ

ออฟไลน์ perjer4675

  • Full Member
  • ***
  • กระทู้: 221
  • ไม่มีใครรู้ใจเราเท่ากับเรารู้ใจตัวเอง
  • Respect: +2
    • ดูรายละเอียด
    • ไทย - เพ้อเจ้อ
Re: เรียนถาม อาจารย์ทุกท่าน เรื่อง คำสั่ง Sql
« ตอบกลับ #1 เมื่อ: เมษายน 20, 2009, 08:15:01 AM »
0
select p.clinic,vn.hn,concat(vn.pdx,'  ',i.name) as pdxname,
concat(p.pname,p.fname,'  ',p.lname) as fullname,p.informaddr,vn.age_y
from vn_stat vn
inner join patient p on p.hn=vn.hn
inner join icd101 i on i.code=vn.pdx
where vn.pdx between 'I300' and 'I529' and vn.vstdate between '2008-03-01' and '2009-03-01'
and vn.hn in (select hn from clinicmember)
group by vn.hn
order by vn.hn asc

ชื่อ นาย เกรียงไกร  ทาฤทธิ์
โรงพยาบาลสมุทรปราการ
ยังไม่ได้ทำอย่าบอกว่า ทำไม่ได้
mail perjer4675[at]hotmail.com
เว็บส่วนตัว www.perjer.net

ออฟไลน์ perjer4675

  • Full Member
  • ***
  • กระทู้: 221
  • ไม่มีใครรู้ใจเราเท่ากับเรารู้ใจตัวเอง
  • Respect: +2
    • ดูรายละเอียด
    • ไทย - เพ้อเจ้อ
Re: เรียนถาม อาจารย์ทุกท่าน เรื่อง คำสั่ง Sql
« ตอบกลับ #2 เมื่อ: เมษายน 20, 2009, 08:22:07 AM »
0
มีโจทย์อยู่ว่า อยากได้คนไข้ที่มาด้วยโรคหัวใจ (I300 - I529) แต่คนไข้ต้องมีใช่คนไข้ในคลินิกพิเศษ

ตกลงมิใช่ หรือ ว่ามีใช้ ครับ ก็แก้ตามนี้เองนะงับ

ถ้ามีใช้ ก็ใช้ in

select p.clinic,vn.hn,concat(vn.pdx,'  ',i.name) as pdxname,
concat(p.pname,p.fname,'  ',p.lname) as fullname,p.informaddr,vn.age_y
from vn_stat vn
inner join patient p on p.hn=vn.hn
inner join icd101 i on i.code=vn.pdx
where vn.pdx between 'I300' and 'I529' and vn.vstdate between '2008-03-01' and '2009-03-01'
and vn.hn in (select hn from clinicmember)
group by vn.hn
order by vn.hn asc

ถ้ามิใช่ ก็ใช้ not in

select p.clinic,vn.hn,concat(vn.pdx,'  ',i.name) as pdxname,
concat(p.pname,p.fname,'  ',p.lname) as fullname,p.informaddr,vn.age_y
from vn_stat vn
inner join patient p on p.hn=vn.hn
inner join icd101 i on i.code=vn.pdx
where vn.pdx between 'I300' and 'I529' and vn.vstdate between '2008-03-01' and '2009-03-01'
and vn.hn not in (select hn from clinicmember)
group by vn.hn
order by vn.hn asc
ชื่อ นาย เกรียงไกร  ทาฤทธิ์
โรงพยาบาลสมุทรปราการ
ยังไม่ได้ทำอย่าบอกว่า ทำไม่ได้
mail perjer4675[at]hotmail.com
เว็บส่วนตัว www.perjer.net

ออฟไลน์ Neo

  • Hero Member
  • *****
  • กระทู้: 1,703
  • The Kop
  • Respect: +6
    • ดูรายละเอียด
Re: เรียนถาม อาจารย์ทุกท่าน เรื่อง คำสั่ง Sql
« ตอบกลับ #3 เมื่อ: เมษายน 20, 2009, 08:32:13 AM »
0
ขอบคุณครับ ทดสอบ Code ของท่านแล้วใช้ได้เลครับ
1. เพิ่ม and vn.hn in (select hn from clinicmember) จะเอาคนไข้ในคลินิกพิเศษที่มาด้วยโรคหัวใจ เท่านั้น ซึ่งตามโจทย์ ไม่ถูก
2. เพิ่ม and vn.hn not in (select hn from clinicmember) จะเอาคนไข้ไม่เป็นคนไข้ในคลินิกพิเศษที่มาด้วยโรคหัวใจ ถูกต้องครับ


ขอบคุณมากครับ ;D ;D ;D
Mr.Chayanut Suwamat
E-Mail=>Mr.Chayanut9@Gmail.com
BMS DATACENTER ระดับจังหวัดบึงกาฬ Start 1 พ.ย. 2554
สำนักงานสาธารณสุขจังหวัดบึงกาฬ