BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: bbbas ที่ กันยายน 13, 2012, 13:30:14 PM

หัวข้อ: ช่วยดูคำสั่งรายงานให้หน่อยครับ
เริ่มหัวข้อโดย: bbbas ที่ กันยายน 13, 2012, 13:30:14 PM
ผมจะทำรายงานค่าใช้จ่ายของผู้ป่วยในครับ โดยจะนับครั้งที่ผู้ป่วยมารับบริการครับ จากรูปผมใช้ count(o.an) แล้วทำไมมันถึงนับรวมเป็นวันครับ ทำไม่มันไม่นับรวมทั้งเดือนครับ จะเป็นที่ผม group ไว้หรือป่าวครับ ถ้าไม่ใช้ group แล้วผมจะทำยังไงให้ได้ผลลัพธ์ออกมาเป็นครั้งครับ ถ้าเป็นผู้ป่วยนอกจะนับ vn ก็จะได้เป็นครั้งเพราะมารับบริการ 1ครั้ง ก็ 1 vn แต่ผู้ป่วยในจะนับครั้งจากอะไรได้ครับ เพราะถ้ายัง admit อยู่ก็จะใช้ an เดิม ขอคำแนะนำด้วยครับ (ยังไม่ค่อยมีความรู้เรื่องการทำรายงานเท่ารัยครับ)
หัวข้อ: Re: ช่วยดูคำสั่งรายงานให้หน่อยครับ
เริ่มหัวข้อโดย: kkko ที่ กันยายน 13, 2012, 14:29:19 PM
ลองแบบนี้ได้ไหมครับ
select count(distinct an)as dd from opitemrece
where dep_code="042"and pttype="21"and vstdate between "2012-08-01"and"2012-08-31"
ถ้าเอาเฉพาะคนก็ใส่ distinct ตารางนี้รายการยาแต่ละรายการจะนับเป็น 1 record นะครับอาจได้ข้อมูลที่ไม่ตรงกับที่เราต้องการได้
หัวข้อ: Re: ช่วยดูคำสั่งรายงานให้หน่อยครับ
เริ่มหัวข้อโดย: bbbas ที่ กันยายน 13, 2012, 14:50:45 PM
ลองแบบนี้ได้ไหมครับ
select count(distinct an)as dd from opitemrece
where dep_code="042"and pttype="21"and vstdate between "2012-08-01"and"2012-08-31"
ถ้าเอาเฉพาะคนก็ใส่ distinct ตารางนี้รายการยาแต่ละรายการจะนับเป็น 1 record นะครับอาจได้ข้อมูลที่ไม่ตรงกับที่เราต้องการได้
ถ้า count แล้ว distinct an ก็จะเท่ากับว่าให้นับ an ถ้า an ซ้ำก็นับเป็น 1 (อันนี้ผมเข้าใจถูกรึป่าวครับ) แต่ผมอยากได้แบบว่า ถ้า an ซ้ำ แต่มารับบริการคนละวันกัน ก็ให้นับเป็น 1 คน 2ครั้ง ถ้ามารับบริการในวันถัดไปอีก ก็เป็น 1 คน3 ครั้ง น่ะครับ
หัวข้อ: Re: ช่วยดูคำสั่งรายงานให้หน่อยครับ
เริ่มหัวข้อโดย: kkko ที่ กันยายน 13, 2012, 15:52:31 PM
แบบนี้ได้เปล่าครับ(ผมก็ไม่ค่อยเก่งเรื่อง qury เท่าไหร่ครับ)
select an,vstdate,order_no from opitemrece
where dep_code="042"and pttype="21"and vstdate between"2012-08-01"and"2012-08-31"
group by order_no order by an,order_no
ถ้าจะให้ได้ข้อมูลหลากหลายน่าจะใช้ระบบ report designer
หัวข้อ: Re: ช่วยดูคำสั่งรายงานให้หน่อยครับ
เริ่มหัวข้อโดย: bbbas ที่ กันยายน 14, 2012, 08:52:14 AM
แบบนี้ได้เปล่าครับ(ผมก็ไม่ค่อยเก่งเรื่อง qury เท่าไหร่ครับ)
select an,vstdate,order_no from opitemrece
where dep_code="042"and pttype="21"and vstdate between"2012-08-01"and"2012-08-31"
group by order_no order by an,order_no
ถ้าจะให้ได้ข้อมูลหลากหลายน่าจะใช้ระบบ report designer
ผมลอง query แล้ว ข้อมูลที่ได้โอเคครับ ขอบคุณครับ
หัวข้อ: Re: ช่วยดูคำสั่งรายงานให้หน่อยครับ
เริ่มหัวข้อโดย: bbbas ที่ กันยายน 14, 2012, 09:50:58 AM
พี่ kkko ครับ มันใช้คำสั่ง count an ไม่ได้อ่ะครับ ผมนับรวมไม่ได้ครับ มันนับรวมให้เป็นวันครับ ดังรูปครับ
หัวข้อ: Re: ช่วยดูคำสั่งรายงานให้หน่อยครับ
เริ่มหัวข้อโดย: bbbas ที่ กันยายน 15, 2012, 10:28:41 AM
ดัน ๆๆๆๆๆ ครับ
หัวข้อ: Re: ช่วยดูคำสั่งรายงานให้หน่อยครับ
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ กันยายน 15, 2012, 16:18:42 PM
ดัน ๆๆๆๆๆ ครับ

คำสั่งเดิม order by vstdate พอครับ..และเลือกแค่ count(an) as cc,vstdate มาแค่ 2 คอลัมน์ ไม่ต้องนับ order_no  มิเช่นนั้น ก็นับ ใบสั่ง โดยดู่ว่าใน 1 วันมีกี่ an และกี่ใบสั่งยา ครับ...คือเอาทั้ง
 count(order_no) as cc,count(an) as bb,vstdate from opitemrece
where rxdate between"xxxx-xx-xx" and "xxxx-yy-yy"
group by vstdate
order by vstdate
หัวข้อ: Re: ช่วยดูคำสั่งรายงานให้หน่อยครับ
เริ่มหัวข้อโดย: bbbas ที่ กันยายน 17, 2012, 10:19:18 AM
ขอบคุณครับ พี่เกื้อ