BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: panus_t ที่ กรกฎาคม 11, 2012, 15:46:09 PM

หัวข้อ: สอบถามคำสั่ง Query ครับ
เริ่มหัวข้อโดย: panus_t ที่ กรกฎาคม 11, 2012, 15:46:09 PM
select v.vn,v.vstdate,v.hn,v.pdx,v.dx1,v.dx2,v.dx3,v.dx4,v.dx5,concat(p.pname,p.fname," ",p.lname) as pt_name
,p.addrpart,p.moopart,t.full_name,ptt.hospmain
from vn_stat v
left outer join patient p on p.hn=v.hn
left outer join thaiaddress t on t.addressid=v.aid
left outer join pttypeno ptt on ptt.hn=v.hn
where v.pdx >= "E140" and v.pdx <= "E149" or
  v.dx0 >= "E140" and v.dx0 <= "E149" or
  v.dx1 >= "E140" and v.dx1 <= "E149" or
  v.dx2 >= "E140" and v.dx2 <= "E149" or
  v.dx3 >= "E140" and v.dx3 <= "E149" or
  v.dx4 >= "E140" and v.dx4 <= "E149" or
  v.dx5 >= "E140" and v.dx5 <= "E149"
group by v.hn

จากคำสั่งข้างบน ผมต้องการดึงผู้ป่วยที่มีการลง Dx.E140-E149 เป็นครั้งแรก แต่ทำไมมันถึงมี Dx.อื่นปนมาด้วยครับ .
 ???
หัวข้อ: Re: สอบถามคำสั่ง Query ครับ
เริ่มหัวข้อโดย: manoi ที่ กรกฎาคม 11, 2012, 15:50:58 PM
ถ้าใช้  group by ควรจะมี aggregate function  ใน select statement ด้วยนะครับ

แล้ว เงื่อนไข ถ้าใช้ and กับ or ปนกัน ควรใช้ วงเล็บ ช่วยคั่นในแต่ละเงื่อนไขนะครับ
หัวข้อ: Re: สอบถามคำสั่ง Query ครับ
เริ่มหัวข้อโดย: panus_t ที่ กรกฎาคม 11, 2012, 16:02:03 PM
ถ้าใช้  group by ควรจะมี aggregate function  ใน select statement ด้วยนะครับ

แล้ว เงื่อนไข ถ้าใช้ and กับ or ปนกัน ควรใช้ วงเล็บ ช่วยคั่นในแต่ละเงื่อนไขนะครับ

aggregate function  คืออะไรครับอาจารย์
ไม่ได้สังเกตว่า วงเล็บหาย ตอนแรกมันเป็นอย่างนี้ครับ
 and ( (pdx >= "E100" and pdx <= "E119")
 or (dx0 >= "E100" and dx0 <= "E119")
 or (dx1 >= "E100" and dx1 <= "E119")
 or (dx2 >= "E100" and dx2 <= "E119")
 or (dx3 >= "E100" and dx3 <= "E119")
 or (dx4 >= "E100" and dx4 <= "E119")
 or (dx5 >= "E100" and dx5 <= "E119") )

copy มาจาก Custom Search กดไปกดมาท่าไหนไม่ทราบวงเล็บหาย :->
ขอบคุณครับ