BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: bbbas ที่ กันยายน 13, 2012, 13:30:14 PM
-
ผมจะทำรายงานค่าใช้จ่ายของผู้ป่วยในครับ โดยจะนับครั้งที่ผู้ป่วยมารับบริการครับ จากรูปผมใช้ count(o.an) แล้วทำไมมันถึงนับรวมเป็นวันครับ ทำไม่มันไม่นับรวมทั้งเดือนครับ จะเป็นที่ผม group ไว้หรือป่าวครับ ถ้าไม่ใช้ group แล้วผมจะทำยังไงให้ได้ผลลัพธ์ออกมาเป็นครั้งครับ ถ้าเป็นผู้ป่วยนอกจะนับ vn ก็จะได้เป็นครั้งเพราะมารับบริการ 1ครั้ง ก็ 1 vn แต่ผู้ป่วยในจะนับครั้งจากอะไรได้ครับ เพราะถ้ายัง admit อยู่ก็จะใช้ an เดิม ขอคำแนะนำด้วยครับ (ยังไม่ค่อยมีความรู้เรื่องการทำรายงานเท่ารัยครับ)
-
ลองแบบนี้ได้ไหมครับ
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 นะครับอาจได้ข้อมูลที่ไม่ตรงกับที่เราต้องการได้
-
ลองแบบนี้ได้ไหมครับ
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 ครั้ง น่ะครับ
-
แบบนี้ได้เปล่าครับ(ผมก็ไม่ค่อยเก่งเรื่อง 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
-
แบบนี้ได้เปล่าครับ(ผมก็ไม่ค่อยเก่งเรื่อง 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 แล้ว ข้อมูลที่ได้โอเคครับ ขอบคุณครับ
-
พี่ kkko ครับ มันใช้คำสั่ง count an ไม่ได้อ่ะครับ ผมนับรวมไม่ได้ครับ มันนับรวมให้เป็นวันครับ ดังรูปครับ
-
ดัน ๆๆๆๆๆ ครับ
-
ดัน ๆๆๆๆๆ ครับ
คำสั่งเดิม 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
-
ขอบคุณครับ พี่เกื้อ