BMS-HOSxP Community

HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: chronoX ที่ มีนาคม 27, 2007, 01:32:06 AM

หัวข้อ: ช่วย check sql ให้ทีครับ
เริ่มหัวข้อโดย: chronoX ที่ มีนาคม 27, 2007, 01:32:06 AM
select lhd.lab_order_number,lhd.vn,lhd.hn,vst.vstdate,lhd.order_date,pt.bloodgrp,lor.lab_items_code,lit.lab_items_name,lor.lab_order_result,lit.lab_items_unit,
lit.lab_items_normal_value
from lab_head lhd
left outer join ovst vst on vst.hn = lhd.hn
left outer join patient pt on pt.hn = lhd.hn
left outer join  lab_order lor on lor.lab_order_number= lhd.lab_order_number
left outer join lab_items lit on lit.lab_items_code = lor.lab_items_code
where  vst.vstdate between '2007-02-26' and '2007-02-26' and lhd.hn ='0114236'
and lor.lab_items_code in (241,1003,1016,1024,1025,94,1028,58,1025,1026,1033,1029,1005)
order by lor.lab_items_code asc

--------------------------------------------------------------------------------------------------------------------------

มันขึ้นแปลกๆครับ ไปดึงค่าเก่ามาด้วย ทั้งๆที่ระบุวันที่มาแล้ว ไม่ทราบว่าเกิดจากอะไร อาจจะเป็นเพราะ join ตารางมากเกินไปครับ ใครก้อได้ช่วยแก้ให้ทีครับ
หัวข้อ: Re: ช่วย check sql ให้ทีครับ
เริ่มหัวข้อโดย: naj ที่ มีนาคม 27, 2007, 01:53:44 AM
select lhd.lab_order_number,lhd.vn,lhd.hn,vst.vstdate,lhd.order_date,pt.bloodgrp,lor.lab_items_code,lit.lab_items_name,lor.lab_order_result,lit.lab_items_unit,
lit.lab_items_normal_value
from lab_head lhd
left outer join ovst vst on vst.vn = lhd.vnleft outer join patient pt on pt.hn = lhd.hn
left outer join  lab_order lor on lor.lab_order_number= lhd.lab_order_number
left outer join lab_items lit on lit.lab_items_code = lor.lab_items_code
where  vst.vstdate between '2007-02-26' and '2007-02-26' and lhd.hn ='0114236'
and lor.lab_items_code in (241,1003,1016,1024,1025,94,1028,58,1025,1026,1033,1029,1005)
order by lor.lab_items_code asc
ลองเปลี่ยนดูนะ
หัวข้อ: Re: ช่วย check sql ให้ทีครับ
เริ่มหัวข้อโดย: chronoX ที่ มีนาคม 27, 2007, 02:41:00 AM
ได้แล้วครับ  เส้นผมบังภูเขาจริงๆ ขอบคุณอ.นาจมากครับ ;D
หัวข้อ: Re: ช่วย check sql ให้ทีครับ
เริ่มหัวข้อโดย: naj ที่ มีนาคม 27, 2007, 03:09:11 AM
post ใหม่ครับจะได้ดูง่ายๆ
โค๊ด: SQL
  1. SELECT lhd.lab_order_number,lhd.vn,lhd.hn,vst.vstdate,lhd.order_date,pt.bloodgrp,lor.lab_items_code,lit.lab_items_name,lor.lab_order_result,lit.lab_items_unit,
  2. lit.lab_items_normal_value
  3. FROM lab_head lhd
  4. LEFT OUTER JOIN ovst vst ON vst.vn = lhd.vn
  5. eft OUTER JOIN patient pt ON pt.hn = lhd.hn
  6. LEFT OUTER JOIN  lab_order lor ON lor.lab_order_number= lhd.lab_order_number
  7. LEFT OUTER JOIN lab_items lit ON lit.lab_items_code = lor.lab_items_code
  8. WHERE  vst.vstdate BETWEEN '2007-02-26' AND '2007-02-26' AND lhd.hn ='0114236'
  9. AND lor.lab_items_code IN (241,1003,1016,1024,1025,94,1028,58,1025,1026,1033,1029,1005)
  10. ORDER BY lor.lab_items_code ASC
จริงจะรอ อ.nayok มาช่วยตอบก่อน แต่รู้สึกว่าวันนี้ท่านคงไม่ว่างมาตอบให้ :)