BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: panda ที่ มิถุนายน 22, 2012, 09:33:23 AM
-
รบกวนเซียนทั้งหลาย ใครมีรายงานประมาณนี้บ้าง รบกวนขอรายงาน BP ผู้ป่วย HT / DM ที่มีค่า BP มากกว่าหรือเท่ากับ 130/80 โดยใช้ BP ที่วัดครั้งสุดท้ายเป็นตัวกำหนด
รายงานระดับ BP ที่ควบคุมได้ ช่วง 3 เดือน
มีเงื่อนไข ดังนี้
- เป็นผู้ป่วย DM และ HT
- BP มากกว่าหรือเท่ากับ 130/80
- BP ที่วัดต้องเป็นครั้งสุดท้าย
-
หลังจากไปนั่งคิดมาครึ่งวัน ได้ออกมาแบบนี้ รบกวนเซียนทั้งหลายดูให้หน่อยค่ะ ว่าผิดตรงไหนอ่ะ
set @d1 = '2012-01-01';
set @d2 = '2012-01-31';
select *
from
(select v.hn,concat(p.pname,p.fname,space(3),p.lname) as ptname,p.clinic,sc.bps,sc.bpd
,
(
select sc.bps
from opdscreen sc1
where sc1.vstdate between DATE_ADD(@d1, INTERVAL -1 MONTH) and DATE_ADD(@d2, INTERVAL -1 MONTH)
and sc1.hn = v.hn
) as bps1
,
(
select sc.bps
from opdscreen sc2
where sc2.vstdate between DATE_ADD(@d1, INTERVAL -2 MONTH) and DATE_ADD(@d2, INTERVAL -2 MONTH)
and sc2.hn = v.hn
) as bps2
,
(
select sc.bpd
from opdscreen sc3
where sc3.vstdate between DATE_ADD(@d1, INTERVAL -1 MONTH) and DATE_ADD(@d2, INTERVAL -1 MONTH)
and sc3.hn = v.hn
) as bpd1
,
(
select sc.bpd
from opdscreen sc4
where sc4.vstdate between DATE_ADD(@d1, INTERVAL -2 MONTH) and DATE_ADD(@d2, INTERVAL -2 MONTH)
and sc4.hn = v.hn
) as bpd2
from vn_stat v
left join opdscreen sc on sc.vn = v.vn
left join patient p on p.hn = v.hn
where v.vstdate between @d1 and @d2
and p.clinic like '%àºÒËÇÒ¹%'
and sc.bps is not null
and sc.bps >= '130' or sc.bpd >= '80'
and v.vstdate between @d1 and @d2
group by v.hn
order by v.aid desc ,v.vstdate,v.hn
) as ttemp
where bps >= '130' and bps1 >= '130' and bps2 >= '130'
-
ดันหน่อยจะหล่นแล้วค่ะ ;D ;D
-
ช่วยดันค่ะ ;D
-
แบบนี้ได้ไหมครับ
set @d1 = '2012-01-01';
set @d2 = '2012-01-31';
select *
from
(select v.hn,concat(p.pname,p.fname,space(3),p.lname) as ptname,p.clinic,sc.bps,sc.bpd
,
(
select sc.bps
from opdscreen sc1
where sc1.vstdate between DATE_ADD(@d1, INTERVAL -1 MONTH) and DATE_ADD(@d2, INTERVAL -1 MONTH)
and sc1.hn = v.hn
) as bps1
,
(
select sc.bps
from opdscreen sc2
where sc2.vstdate between DATE_ADD(@d1, INTERVAL -2 MONTH) and DATE_ADD(@d2, INTERVAL -2 MONTH)
and sc2.hn = v.hn
) as bps2
,
(
select sc.bpd
from opdscreen sc3
where sc3.vstdate between DATE_ADD(@d1, INTERVAL -1 MONTH) and DATE_ADD(@d2, INTERVAL -1 MONTH)
and sc3.hn = v.hn
) as bpd1
,
(
select sc.bpd
from opdscreen sc4
where sc4.vstdate between DATE_ADD(@d1, INTERVAL -2 MONTH) and DATE_ADD(@d2, INTERVAL -2 MONTH)
and sc4.hn = v.hn
) as bpd2
from vn_stat v
left join opdscreen sc on sc.vn = v.vn
left join patient p on p.hn = v.hn
where v.vstdate between @d1 and @d2
and p.clinic like '%àºÒËÇÒ¹%'
and sc.bps is not null
and (sc.bps >= '130' or sc.bpd >= '80')
and v.vstdate between @d1 and @d2
group by v.hn
order by v.aid desc ,v.vstdate,v.hn
) as ttemp
where bps >= '130' and bps1 >= '130' and bps2 >= '130'
-
ไม่ออกค่าใดๆ มาเลยครับ
-
ถ้ากติกา คือมากกว่า หรือเท่ากับ 130/80 มิใช่ค่า bps or bpd อย่างใดอย่างหนึ่ง เช่น ถ้าวัดได้ 135/79 ก็จะนอกเงื่อนไขครับ
-
รายชื่อผู้ป่วย HT ที่มี BP น้อยกว่า 140/90 จำนวน 2 ครั้งติดกัน เลือกในช่วงที่ที่ต้องการได้
select *
from(select v.hn,concat(p.pname,p.fname,space(3),p.lname) as ptname,p.clinic,sc.bps,sc.bpd,
(select sc.bps
from opdscreen sc1
where sc1.vstdate between DATE_ADD("2014-01-01", INTERVAL -1 MONTH) and DATE_ADD("2014-04-20", INTERVAL -1 MONTH)
and sc1.hn = v.hn
) as bps1,
(select sc.bps from opdscreen sc2
where sc2.vstdate between DATE_ADD("2014-01-01", INTERVAL -2 MONTH) and DATE_ADD("2014-04-20", INTERVAL -2 MONTH)
and sc2.hn = v.hn
) as bps2,
(select sc.bpd
from opdscreen sc3
where sc3.vstdate between DATE_ADD("2014-01-01", INTERVAL -1 MONTH) and DATE_ADD("2014-04-20", INTERVAL -1 MONTH)
and sc3.hn = v.hn
) as bpd1,
(select sc.bpd
from opdscreen sc4
where sc4.vstdate between DATE_ADD("2014-01-01", INTERVAL -2 MONTH) and DATE_ADD("2014-04-20", INTERVAL -2 MONTH)
and sc4.hn = v.hn
) as bpd2
from vn_stat v
left join opdscreen sc on sc.vn = v.vn
left join patient p on p.hn = v.hn
where v.vstdate between "2014-01-01" and "2014-04-20"
and p.clinic like '%àºÒËÇÒ¹%' (?ตรงนี้คืออะไร)
and sc.bps is not null
and (sc.bps<= "140" and sc.bpd<= "90")
and v.vstdate between "2014-01-01" and "2014-04-20"
group by v.hn
order by v.aid desc ,v.vstdate,v.hn) as ttemp
where bps<= "140" and bps1<= "140" and bps2<= "140"