case when else

本文通过SQL查询分析了高病与糖病的累计患者数、本月管理数、规范管理数、体检人数以及随访人数等关键指标,筛选出在指定时间段内高血压和糖尿病随访人数超过4次的机构及其相关信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/* 产销机构 行政村 高病累计患者建党数 高病本月管理数(一年一次服务) 高病本月规范管理数(一年四次随访) 高病本月体验人数 高病累计体检人数
糖病本月新增患者建党数 糖病累计患者建党数 糖尿病本月管理数 糖尿病本月规范管理数 糖尿病本月体检人数 糖尿病累计体检人数
*/
/*case when else语法要点说明如下:
1、以CASE开头,以END结尾
2、分支中WHEN 后跟条件,THEN为显示结果
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、END 后跟别名
*/ select * from(
select jg.简称 as 机构,
jwh.名称 as 行政村,
count(distinct case when rqfl.id = '34F596B0-03CE-4E51-B6B3-A4927B92AE87' then grza.个人id
end) as 高病累计患者建党数,
count(distinct case
when rqfl.id = '7553A063-99F8-4DB9-BDAC-D21C8BBDB243' then grza.个人id
end) as 糖病累计患者建档数,
count(distinct case
when fwxmml.id = '667C2146-BA8C-4937-9ACC-A7D8DB6C2712' and fwhdjl.登记时间 >=to_date('2012-03-01', 'yyyy-mm-dd')
and fwhdjl.登记时间 <= to_date('2012-03-01','yyyy-mm-dd')
then fwhdjl.个人id end) as 高病本月规范管理数,
count(distinct case
when fwxmml.id = 'AC955B0F-E396-4ED6-998D-3746F91EDB8B' and fwhdjl.登记时间 >=to_date('2011-03-01', 'yyyy-mm-dd')
and fwhdjl.登记时间 <= to_date('2012-03-01','yyyy-mm-dd')
then fwhdjl.个人id end) as 糖尿病本月规范管理数 ,
count(distinct case when fwxmml.id='67F5D7FA-D7C2-4244-B9DB-FC34A8E96C57' and fwhdjl.登记时间>=to_date('2012-03-01','yyyy-mm-dd')
and fwhdjl.登记时间 <= to_date('2012-03-01', 'yyyy-mm-dd') then fwhdjl.个人id end ) as 高血压随访人数
count(distinct case when fwxmml.id='AC955B0F-E396-4ED6-998D-3746F91EDB8B' and fwhdjl.登记时间>=to_date('2012-03-01','yyyy-mm-dd')
and fwhdjl.登记时间 <= to_date('2012-03-01', 'yyyy-mm-dd') then fwhdjl.个人id end ) as 糖尿病随访人数
from 个人信息 gr,
机构 jg,
居委会 jwh,
个人专案 grza,
人群分类 rqfl,
服务活动记录 fwhdjl,
服务项目目录 fwxmml
where gr.当前机构id = jg.资源id
And gr.居委会id = jwh.id
And grza.个人id = gr.id
And grza.人群id = rqfl.id
And fwhdjl.个人id = gr.id
And fwhdjl.项目id = fwxmml.id
group by jg.简称, jwh.名称
) where 高血压随访人数>4 and 糖尿病随访人数>4
/*求当前机构下姓名和高血压随访人数的总人数*/
select count(1)
from (
select gr.姓名, count(1) 高血压随访人数
from 个人信息 gr,
机构 jg,
服务活动记录 fwhdjl,
服务项目目录 fwhdxmml where gr.当前机构id = jg.资源id
and fwhdjl.个人id = gr.id
and fwhdjl.项目id = fwhdxmml.id
and fwhdxmml.名称 = '高血压随访'
and fwhdjl.登记时间 >= to_date('2011-03-01', 'yyyy-mm-dd')
and fwhdjl.登记时间 <= to_date('2012-03-01', 'yyyy-mm-dd')
group by gr.姓名)
where 高血压随访人数 >= 4

转载于:https://www.cnblogs.com/ASPXML/archive/2012/05/17/2506172.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值