ผู้ป่วยในน่าจะนับจาก ipt_order_no
1 record = 1 ใบสั่ง ตัดรายการที่เป็นการสั่งแบบอัตโนมัติ (auto) ออก
select count(*) as prescript from ipt_order_no where rxdate between "2012-01-01" and "2012-01-31" and (order_type="IRx" or order_type="Hme" or order_type="TRx")
หรือ
select count(*) as prescript from ipt_order_no where rxdate between "2012-01-01" and "2012-01-31" and order_type<>"ATO"
ถ้าจะนับเฉพาะใบสั่งยาที่มียาต้องเอาไป join กับ opitemrece
select count(distinct o.order_no) as prescript from ipt_order_no i
join opitemrece o on o.order_no=i.order_no
where i.rxdate between "2012-01-01" and "2012-01-31" and i.order_type<>"ATO" and o.icode like "1%"
หรือ
select count(distinct order_no) as prescript opitemrece
where rxdate between "2012-01-01" and "2012-01-31" and icode like "1%"
ผมยังไม่ได้ confirm กับข้อมูลจริงนะครับ ลองดูก่อนครับ
กรณีนับทุกใบ อาจใช้
select count(distinct order_no) as prescript opitemrece
where rxdate between "2012-01-01" and "2012-01-31"
(แต่ยังนับใบสั่งยาแบบ auto อยู่)
ลองเลือกใช้ดูครับ
เขียนได้คล้ายๆ แบบ อ.โก้ ครับ
select count(distinct order_no) as prescript opitemrece
where rxdate between "2012-01-01" and "2012-01-31"
and an > '1' and icode like '1%'
แต่ ใช้ ฟิลด์ order_no ระบบจะค้างครับ มันไม่มี index ครับ ใช้เวลานานมากครับ
ต้องใช้เงื่อนไขอื่นร่วมด้วยครับ