BMS-HOSxP Community

HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: d^_^b►►ทิว ที่ กรกฎาคม 19, 2012, 09:31:36 AM

หัวข้อ: ขอคำแนะนำการเขียนคำสั่ง SQL
เริ่มหัวข้อโดย: d^_^b►►ทิว ที่ กรกฎาคม 19, 2012, 09:31:36 AM
ผมจะดึงข้อมูลผู้ป่วย คนแรกที่มารับบริการในแต่ล่ะวัน ว่า hn อะไร มาเวลาไหน หมอคนไหนตรวจ
ดึงเดือนล่ะครั้ง จะได้ข้อมูล เดือนล่ะ 30 รายการ  หรือวันล่ะรายการ(รายการที่มารับบริการแรกสุด)
ต้องเรียบเรียงคำสั่งยังไงครับ
หัวข้อ: Re: ขอคำแนะนำการเขียนคำสั่ง SQL
เริ่มหัวข้อโดย: usa0823 ที่ กรกฎาคม 19, 2012, 09:48:35 AM
select vstdate,vsttime,min(vn),hn from ovst
where vstdate between "xxxx-xx-xx" and "xxxx-xx-xx"
group by vstdate

น่าจะประมาณนี้ได้นะครับ อยากได้อย่างอื่นลองเพิ่มดูนะครับ
หัวข้อ: Re: ขอคำแนะนำการเขียนคำสั่ง SQL
เริ่มหัวข้อโดย: d^_^b►►ทิว ที่ กรกฎาคม 19, 2012, 10:06:44 AM
ไม่ได้ครับ สังเกตุจากวันที่ 3 ไม่น่าจะเป็นไปได้ว่า คนไข้รายแรกจะมาตอน เกือบเที่ยง
อีกทั้ง vn ไม่สัมพันธ์กับ เวลา ครับ ดูจากเวลาแล้ว vn น่าจะเป็น 550703112246 น่ะครับ
พอจะมีวิธีอื่นไหมครับ
หัวข้อ: Re: ขอคำแนะนำการเขียนคำสั่ง SQL
เริ่มหัวข้อโดย: golf_win ที่ กรกฎาคม 19, 2012, 11:00:38 AM
ลองแบบนี้ครับ

select min(vstdate),min(vsttime),min(vn),hn from ovst
where vstdate between "2012-05-01" and "2012-05-31"
group by vstdate
หัวข้อ: Re: ขอคำแนะนำการเขียนคำสั่ง SQL
เริ่มหัวข้อโดย: woravet ที่ กรกฎาคม 19, 2012, 11:37:03 AM
select a.vstdate,o.vsttime,a.vn
,pt.pname,pt.fname,pt.lname
,o.doctor,dr.name doctorname
,v.pdx
from (select vstdate,min(vn) vn
from ovst
where vstdate between '2012-1-1' and '2012-1-31'
group by vstdate) a
left join ovst o on a.vn=o.vn
left join vn_stat v on o.vn=v.vn
left join patient pt on o.hn=pt.hn
left join doctor dr on o.doctor=dr.code

ประมาณนี้มั๊ย