数据库

 首页 > 数据库 > Oracle > case when else语句的使用

case when else语句的使用

分享到:
【字体:
导读:
         摘要:/*产销机构行政村高病累计患者建党数高病本月管理数(一年一次服务)高病本月规范管理数(一年四次随访)高病本月体验人数高病累计体检人数糖病本月新增患者建党数糖病累计患者建党数糖尿病本月... SyntaxHighlighter.all(); ...

case when else语句的使用

/* 产销机构 行政村 高病累计患者建党数 高病本月管理数(一年一次服务) 高病本月规范管理数(一年四次随访) 高病本月体验人数 高病累计体检人数 
糖病本月新增患者建党数 糖病累计患者建党数 糖尿病本月管理数 糖尿病本月规范管理数 糖尿病本月体检人数 糖尿病累计体检人数   www.2cto.com  
*/ 
/*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')  www.2cto.com  
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)  www.2cto.com  
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
 
 
 
作者 Zhangyujie
case when else语句的使用
分享到:
探索ORACLE之RMAN_02基本使用
探索ORACLE之RMAN_02基本使用   相关链接: 探索ORACLE之RMAN_01概念 http://www.2cto.com/database/201205/132243.html   RMAN工具是Oracle8i为了更好的实现数据库备份恢复而推出来的一实用工具,可以实现数据库的在线的备份和恢复从而不影响业务的正常运行。并且在Oracle软件安装上的那一时刻就已经存在了,不必另外安...
探索ORACLE之RMAN_01概念
探索ORACLE之RMAN_01概念   1、         什么是RMAN Rman(Recovery Manager)是Oracle 8i以后DBA的一重要工具,一般位于$ORACLE_HOME/bin目录下, 主要用来备份,还原和恢复。可以实现基于数据库级别,表空间级别,文件级别完全恢复和 不完全恢复。   2、         为什么要用RMAN 因为Rman可以有效的备份恢复数据...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……