近一年:
<select id="getTotalTrend" resultType="java.util.HashMap">
select nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'01',vd_count,0)),0) nums1,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'02',vd_count,0)),0) nums2,
nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'03',vd_count,0)),0) nums3,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'04',vd_count,0)),0) nums4,
nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'05',vd_count,0)),0) nums5,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'06',vd_count,0)),0) nums6,
nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'07',vd_count,0)),0) nums7,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'08',vd_count,0)),0) nums8,
nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'09',vd_count,0)),0) nums9,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'10',vd_count,0)),0) nums10,
nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'11',vd_count,0)),0) nums11,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'12',vd_count,0)),0) nums12
from vd_basisdata_etl where to_char(to_date(op_date,'yyyy-MM-dd'), 'yyyy') = #{year,jdbcType=VARCHAR}
</select>
去年:
SimpleDateFormat format = new SimpleDateFormat("yyyy");
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.YEAR, -1);
Date y = c.getTime();
String year = format.format(y);
map.put("year", year);
<select id="getTotalTrendLastyear" resultType="java.util.HashMap">
select nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'01',vd_count,0)),0) nums1,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'02',vd_count,0)),0) nums2,
nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'03',vd_count,0)),0) nums3,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'04',vd_count,0)),0) nums4,
nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'05',vd_count,0)),0) nums5,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'06',vd_count,0)),0) nums6,
nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'07',vd_count,0)),0) nums7,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'08',vd_count,0)),0) nums8,
nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'09',vd_count,0)),0) nums9,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'10',vd_count,0)),0) nums10,
nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'11',vd_count,0)),0) nums11,nvl(sum(decode(to_char(to_date(op_date,'yyyy-mm-dd'),'mm'),'12',vd_count,0)),0) nums12
from vd_basisdata_etl where to_char(to_date(op_date,'yyyy-MM-dd'), 'yyyy') = #{year,jdbcType=VARCHAR}
</select>
近三年:
<!--上报分年 -->
<select id="getPatientNumByYear" resultType="java.util.HashMap">
select
nvl(sum(decode(to_char(REPORT_TIME,'yyyy'),to_char(add_months(sysdate, -24), 'yyyy'),1,0)),0) nums1,
nvl(sum(decode(to_char(REPORT_TIME,'yyyy'),to_char(add_months(sysdate, -12), 'yyyy'),1,0)),0) nums2,
nvl(sum(decode(to_char(REPORT_TIME,'yyyy'),to_char(add_months(sysdate, 0), 'yyyy'),1,0)),0) nums3
from STROKE
where 1=1
</select>
近几个季度:
<!--上报分季度 -->
<select id="getPatientNumBySeason" resultType="java.util.HashMap">
select nvl(sum(decode(to_char(REPORT_TIME,'mm'),'01',1,'02',1,'03',1,0)),0) nums1,
nvl(sum(decode(to_char(REPORT_TIME,'mm'),'04',1,'05',1,'06',1,0)),0) nums2,
nvl(sum(decode(to_char(REPORT_TIME,'mm'),'07',1,'08',1,'09',1,0)),0) nums3,
nvl(sum(decode(to_char(REPORT_TIME,'mm'),'10',1,'11',1,'12',1,0)),0) nums4
from STROKE
where 1=1
</select>
近几天:
<!--上报分天 -->
<select id="getPatientNumByDay" resultType="java.util.HashMap">
select
COALESCE(b.zs,0) as zs,
a.today
from ((SELECT
to_char (SYSDATE- LEVEL + 1, 'mm/dd') today
FROM
DUAL connect BY LEVEL <= 5) a
left join (
select count(0) as zs , to_char (o.REPORT_TIME, 'mm/dd') REPORT_TIME from STROKE o GROUP BY to_char (o.REPORT_TIME, 'mm/dd'))b
on a.today=b.REPORT_TIME) order by a.today
</select>