BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: phatipan2 ที่ กรกฎาคม 09, 2010, 13:39:47 PM

หัวข้อ: ขอคำสั่ง การนับ ครับ
เริ่มหัวข้อโดย: phatipan2 ที่ กรกฎาคม 09, 2010, 13:39:47 PM
select hn, min(vstdate)
from vn_stat
where vstdate between "2009-10-01" and "2010-09-30"
group by hn

คำสั่งนี้ ทำรายงานไม่ได้ ครับ เพราะว่าต้องการ จำนวนครับ แบบนี้รวมไม่ได้ ครับ
 ใช้คำสั่ง count ก็ไม่ได้ ครัย รบกวน นิดเดียว ครับ
หัวข้อ: Re: ขอคำสั่ง การนับ ครับ
เริ่มหัวข้อโดย: เข้ม ที่ กรกฎาคม 09, 2010, 14:12:28 PM
จะนับอะไรครับ

select count(distinct(hn))
from vn_stat
where vstdate between "2009-10-01" and "2010-09-30"

select hn
from vn_stat
where vstdate between "2009-10-01" and "2010-09-30"

ให้ผลลัพธ์เหมือนกัน

select distinct(hn)
from vn_stat
where vstdate between "2009-10-01" and "2010-09-30"

ต่างกันตรงการแสดงผล

แต่ถ้าจะนับจำนวนการมา รพ. ต้องเข้าใจว่า ในตารางนี้เก็บ visit number
ซึ่งคนไข้ 1 คน (HN) สามารถมา รพ. ได้หลายครั้ง (VN)
เพราะฉะนั้น ถ้าจะนับจำนวนครั้งที่มา รพ. ในช่วงเวลาที่กำหนด จะต้องนับ vn ครับ

ไม่รู้ตรงหรือป่าว
หัวข้อ: Re: ขอคำสั่ง การนับ ครับ
เริ่มหัวข้อโดย: phatipan2 ที่ กรกฎาคม 09, 2010, 14:35:59 PM
ไม่ใช่ ครับ ต้องการ นับ ผู้ป่วยที่มารับบริการ ครั้ง แรก ในปีงบประมาณ ครับ คือ 1ต.ค.52 - 30ก.ย.53 ครับ
หัวข้อ: Re: ขอคำสั่ง การนับ ครับ
เริ่มหัวข้อโดย: E-Hos ที่ กรกฎาคม 15, 2010, 11:33:24 AM
ไม่ใช่ ครับ ต้องการ นับ ผู้ป่วยที่มารับบริการ ครั้ง แรก ในปีงบประมาณ ครับ คือ 1ต.ค.52 - 30ก.ย.53 ครับ

เหมือนกันครับ ใช้คำสั่งยังไงดีที่จะนับมาครั้งแรก ของ Hn  แต่ละคน..ในปีงบนั้นๆ ครับ
หัวข้อ: Re: ขอคำสั่ง การนับ ครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ กรกฎาคม 15, 2010, 11:59:23 AM
น่าจะใช้คำสั่งนี้ได้ครับ

select count(distinct hn)
from ovst
where vstdate between "2009-10-01" and "2010-09-30"
having min(vstdate) between "2009-10-01" and "2010-09-30"
หัวข้อ: Re: ขอคำสั่ง การนับ ครับ
เริ่มหัวข้อโดย: E-Hos ที่ กรกฎาคม 19, 2010, 20:19:20 PM
น่าจะใช้คำสั่งนี้ได้ครับ

select count(distinct hn)
from ovst
where vstdate between "2009-10-01" and "2010-09-30"
having min(vstdate) between "2009-10-01" and "2010-09-30"

ขอบคุณครับ..

แต่อย่างนี้ครับ ..คือว่าเวชสถิติเค้าอยากได้ว่า ปีหนึ่งๆ เราออก HN กี่HN ใน 1 ปีงบครับ ต้องเขียนโค๊ดยังไงให้นับ HN ใหม่ที่ออกนั้นปีงบนั้นๆครับ ..กำลัง งงๆ และ งมๆ ทำอยู่ครับ อ.pop_hosxp
หัวข้อ: Re: ขอคำสั่ง การนับ ครับ
เริ่มหัวข้อโดย: E-Hos ที่ กรกฎาคม 19, 2010, 20:23:29 PM
ไม่ใช่ ครับ ต้องการ นับ ผู้ป่วยที่มารับบริการ ครั้ง แรก ในปีงบประมาณ ครับ คือ 1ต.ค.52 - 30ก.ย.53 ครับ

เหมือนกันครับ ใช้คำสั่งยังไงดีที่จะนับมาครั้งแรก ของ Hn  แต่ละคน..ในปีงบนั้นๆ ครับ

แฮ่ๆ ..อันนี้ตอนแรกก็ถามว่าอยากได้แบบนี้แหละ  :Dเอาไปเอามา   ;D ;D ;D
แบบว่าเค้าอธิบายผิดเลยเข้าใจผิดครับ... จริงๆแล้วคือจะนับ HN ใหม่ที่ออก ใหม่ๆ ในแต่ละปีงบครับ  ;D ;D ;D
หัวข้อ: Re: ขอคำสั่ง การนับ ครับ
เริ่มหัวข้อโดย: udomchok ที่ กรกฎาคม 19, 2010, 20:27:27 PM
HN ใหม่ในปี
select * from patient where year(firstday) = 2010

นับจำนวน
select count(*) from patient where year(firstday) = 2010

อ.MN ใส่ field firstday เพื่อบอกว่ามาวันแรกเมื่อไร ดังนั้นเราจึงใช้ประโยชน์จาก field นี้ได้ครับ
แต่มีข้อแม้ว่าบางรายที่ถูกเพิ่มเข้ามาใน patient โดยการโอนอัตโนมัติจากบัญชี 1 จะไม่มีข้อมูลใน firstday

หากต้องการทราบว่า HN ไหนเป็น HN แรกของปี
select min(HN) from patient where year(firstday) = 2010

หากต้องการทราบว่า HN ไหนเป็น HN สุดท้ายของปี
select max(HN) from patient where year(firstday) = 2010

แล้วเอา HN ปัจจุบัน มาหักลบกันก็จะทราบครับ... อ้ออย่าลืมบวก HN แรกกลับคืนด้วย
select (max(HN)-min(hn)+1) from patient where year(firstday) = 2010
ผลที่ได้จะเป็นจำนวน HN ที่ออกทั้งหมด รวมที่ออกโดยการ Insert ข้อมูลอัตโนมัติจากบัญชี 1 ด้วย
ซึ่งผลที่ได้อาจจะ error หากมีการ insert ข้อมูลจากบัญชี 1 ตั้งแต่ 1 ม.ค. ของปี (ซึ่งเป็นไปได้น้อยมากกกกกกก...ยกเว้นคนทำบัญชี 1 จะขยันมาทำงานวันขึ้นปีใหม่ด้วย  ;D ;D ;D ;D ;D)
หัวข้อ: Re: ขอคำสั่ง การนับ ครับ
เริ่มหัวข้อโดย: udomchok ที่ กรกฎาคม 19, 2010, 20:36:48 PM
ถ้าถามอย่างนี้ตั้งแต่ทีแรกก็ได้คำตอบไปนานแล้ว  ;D ;D ;D ;D ;D
"จำนวน HN ที่ออกใหม่ในปี"