diff --git a/platform-reportData/src/main/java/com/lymsh/platform/reportdata/dao/StatisticsMapper.java b/platform-reportData/src/main/java/com/lymsh/platform/reportdata/dao/StatisticsMapper.java index d975eed..a3b4103 100644 --- a/platform-reportData/src/main/java/com/lymsh/platform/reportdata/dao/StatisticsMapper.java +++ b/platform-reportData/src/main/java/com/lymsh/platform/reportdata/dao/StatisticsMapper.java @@ -1,6 +1,7 @@ package com.lymsh.platform.reportdata.dao; import com.lymsh.platform.reportdata.model.AreaData; +import com.lymsh.platform.reportdata.model.AreaDataQuery; import java.util.List; @@ -13,4 +14,88 @@ public interface StatisticsMapper { public List queryProvinceRiskPatients(String year); + /** + * 1. 查询每个省当前的高危总人数危总人数 + * @return + */ + public List queryProvinceRisks(); + + /** + * 1.1. 查询每个省内各地区当前的高危总人数 + * @param query + * @return + */ + public List queryRisksByProvince(AreaDataQuery query); + + /** + * 1.2. 查询每个地区内各区县当前的高危总人数 + * @param query + * @return + */ + public List queryRisksByCity(AreaDataQuery query); + + /** + * 2. 查询每个省近30天的建档总人数 + * @return + */ + public List queryProvincePatients(); + + /** + * 2.1. 查询每个省内各地区近30天的建档总人数 + * @param query + * @return + */ + public List queryPatientsByProvince(AreaDataQuery query); + + /** + * 2.2. 查询每个地区内各区县近30天的建档总人数 + * @param query + * @return + */ + public List queryPatientsByCity(AreaDataQuery query); + + /** + * 3. 按省或市或地区查询区域内当前高危总数(按颜色分组、按高危项分组) + * @param query + * @return + */ + public List queryRisks(AreaDataQuery query); + + /** + * 4. 按省或市或地区查询区域内近12个自然月每月建档人数 + * @param query + * @return + */ + public List queryMonthPatients(AreaDataQuery query); + + /** + * 4.1. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近90天按天的) + * 4.2. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近30天按天的 + * @param query days必填 + * @return + */ + public List queryDayPatients(AreaDataQuery query); + + /** + * 5. 按省或市或地区查询区域内近12个自然月每月初诊人数、复诊人数 + * @param query + * @return + */ + public List queryMonthReports(AreaDataQuery query); + + /** + * 5.1. 按省或市或地区查询区域内近12个自然周每周初诊人数、复诊人数(如不能按周就同5.2查询近90天按天的) + * 5.2. 按省或市或地区查询区域内近30天每天初诊人数、复诊人数 + * @param query days必填 + * @return + */ + public List queryDayReports(AreaDataQuery query); + + /** + * 6. 按省或市或地区查询区域内近6个自然月每月产检中历史高危人数(按颜色分组) + * @param query + * @return + */ + public List queryHrefYearRisks(AreaDataQuery query); + } diff --git a/platform-reportData/src/main/java/com/lymsh/platform/reportdata/model/AreaData.java b/platform-reportData/src/main/java/com/lymsh/platform/reportdata/model/AreaData.java index 8a4d807..72b445a 100644 --- a/platform-reportData/src/main/java/com/lymsh/platform/reportdata/model/AreaData.java +++ b/platform-reportData/src/main/java/com/lymsh/platform/reportdata/model/AreaData.java @@ -1,5 +1,7 @@ package com.lymsh.platform.reportdata.model; +import java.util.Date; + /** * Created by Administrator on 2016/6/28 0028. */ @@ -11,8 +13,44 @@ public class AreaData { private String cityName; private String areaId; private String areaName; + private String groupName; + private String riskName; private Integer val; + private Integer val2; private String year; + private Date ymd; + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getRiskName() { + return riskName; + } + + public void setRiskName(String riskName) { + this.riskName = riskName; + } + + public Integer getVal2() { + return val2; + } + + public void setVal2(Integer val2) { + this.val2 = val2; + } + + public Date getYmd() { + return ymd; + } + + public void setYmd(Date ymd) { + this.ymd = ymd; + } public String getProvinceId() { return provinceId; diff --git a/platform-reportData/src/main/java/com/lymsh/platform/reportdata/model/AreaDataQuery.java b/platform-reportData/src/main/java/com/lymsh/platform/reportdata/model/AreaDataQuery.java new file mode 100644 index 0000000..5e8e17c --- /dev/null +++ b/platform-reportData/src/main/java/com/lymsh/platform/reportdata/model/AreaDataQuery.java @@ -0,0 +1,53 @@ +package com.lymsh.platform.reportdata.model; + +/** + * Created by Administrator on 2016/6/30 0030. + */ +public class AreaDataQuery { + + private String provinceId; + private String cityId; + private String areaId; + private String year; + private Integer days; + + public Integer getDays() { + return days; + } + + public void setDays(Integer days) { + this.days = days; + } + + public String getYear() { + return year; + } + + public void setYear(String year) { + this.year = year; + } + + public String getProvinceId() { + return provinceId; + } + + public void setProvinceId(String provinceId) { + this.provinceId = provinceId; + } + + public String getCityId() { + return cityId; + } + + public void setCityId(String cityId) { + this.cityId = cityId; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } +} diff --git a/platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/StatisticsService.java b/platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/StatisticsService.java index e874c4f..e0860b3 100644 --- a/platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/StatisticsService.java +++ b/platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/StatisticsService.java @@ -1,6 +1,7 @@ package com.lymsh.platform.reportdata.service; import com.lymsh.platform.reportdata.model.AreaData; +import com.lymsh.platform.reportdata.model.AreaDataQuery; import java.util.List; @@ -13,4 +14,88 @@ public interface StatisticsService { public List queryProvinceRiskPatients(String year); + /** + * 1. 查询每个省当前的高危总人数危总人数 + * @return + */ + public List queryProvinceRisks(); + + /** + * 1.1. 查询每个省内各地区当前的高危总人数 + * @param query + * @return + */ + public List queryRisksByProvince(AreaDataQuery query); + + /** + * 1.2. 查询每个地区内各区县当前的高危总人数 + * @param query + * @return + */ + public List queryRisksByCity(AreaDataQuery query); + + /** + * 2. 查询每个省近30天的建档总人数 + * @return + */ + public List queryProvincePatients(); + + /** + * 2.1. 查询每个省内各地区近30天的建档总人数 + * @param query + * @return + */ + public List queryPatientsByProvince(AreaDataQuery query); + + /** + * 2.2. 查询每个地区内各区县近30天的建档总人数 + * @param query + * @return + */ + public List queryPatientsByCity(AreaDataQuery query); + + /** + * 3. 按省或市或地区查询区域内当前高危总数(按颜色分组、按高危项分组) + * @param query + * @return + */ + public List queryRisks(AreaDataQuery query); + + /** + * 4. 按省或市或地区查询区域内近12个自然月每月建档人数 + * @param query + * @return + */ + public List queryMonthPatients(AreaDataQuery query); + + /** + * 4.1. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近90天按天的) + * 4.2. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近30天按天的 + * @param query days必填 + * @return + */ + public List queryDayPatients(AreaDataQuery query); + + /** + * 5. 按省或市或地区查询区域内近12个自然月每月初诊人数、复诊人数 + * @param query + * @return + */ + public List queryMonthReports(AreaDataQuery query); + + /** + * 5.1. 按省或市或地区查询区域内近12个自然周每周初诊人数、复诊人数(如不能按周就同5.2查询近90天按天的) + * 5.2. 按省或市或地区查询区域内近30天每天初诊人数、复诊人数 + * @param query days必填 + * @return + */ + public List queryDayReports(AreaDataQuery query); + + /** + * 6. 按省或市或地区查询区域内近6个自然月每月产检中历史高危人数(按颜色分组) + * @param query + * @return + */ + public List queryHrefYearRisks(AreaDataQuery query); + } diff --git a/platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/impl/StatisticsServiceImpl.java b/platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/impl/StatisticsServiceImpl.java index c3d69e8..c1fc14e 100644 --- a/platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/impl/StatisticsServiceImpl.java +++ b/platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/impl/StatisticsServiceImpl.java @@ -2,6 +2,7 @@ package com.lymsh.platform.reportdata.service.impl; import com.lymsh.platform.reportdata.dao.StatisticsMapper; import com.lymsh.platform.reportdata.model.AreaData; +import com.lymsh.platform.reportdata.model.AreaDataQuery; import com.lymsh.platform.reportdata.service.StatisticsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -26,4 +27,64 @@ public class StatisticsServiceImpl implements StatisticsService { public List queryProvinceRiskPatients(String year) { return statisticsMapper.queryProvinceRiskPatients(year); } + + @Override + public List queryProvinceRisks() { + return statisticsMapper.queryProvinceRisks(); + } + + @Override + public List queryRisksByProvince(AreaDataQuery query) { + return statisticsMapper.queryRisksByProvince(query); + } + + @Override + public List queryRisksByCity(AreaDataQuery query) { + return statisticsMapper.queryRisksByCity(query); + } + + @Override + public List queryProvincePatients() { + return statisticsMapper.queryProvincePatients(); + } + + @Override + public List queryPatientsByProvince(AreaDataQuery query) { + return statisticsMapper.queryPatientsByProvince(query); + } + + @Override + public List queryPatientsByCity(AreaDataQuery query) { + return statisticsMapper.queryPatientsByCity(query); + } + + @Override + public List queryRisks(AreaDataQuery query) { + return statisticsMapper.queryRisks(query); + } + + @Override + public List queryMonthPatients(AreaDataQuery query) { + return statisticsMapper.queryMonthPatients(query); + } + + @Override + public List queryDayPatients(AreaDataQuery query) { + return statisticsMapper.queryDayPatients(query); + } + + @Override + public List queryMonthReports(AreaDataQuery query) { + return statisticsMapper.queryMonthReports(query); + } + + @Override + public List queryDayReports(AreaDataQuery query) { + return statisticsMapper.queryDayReports(query); + } + + @Override + public List queryHrefYearRisks(AreaDataQuery query) { + return statisticsMapper.queryHrefYearRisks(query); + } } diff --git a/platform-reportData/src/main/resources/reportOrm/StatisticsMapper.xml b/platform-reportData/src/main/resources/reportOrm/StatisticsMapper.xml index 77e603b..586b090 100644 --- a/platform-reportData/src/main/resources/reportOrm/StatisticsMapper.xml +++ b/platform-reportData/src/main/resources/reportOrm/StatisticsMapper.xml @@ -5,8 +5,16 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform-reportData/src/test/sql.txt b/platform-reportData/src/test/sql.txt index 4573764..5e7fb79 100644 --- a/platform-reportData/src/test/sql.txt +++ b/platform-reportData/src/test/sql.txt @@ -53,4 +53,468 @@ GROUP BY GROUP BY ODS_D_PROVINCE.PROVINCE_ID, ODS_D_PROVINCE.PROVINCE, - ODS_D_DIM_DATE.YEAR_1 \ No newline at end of file + ODS_D_DIM_DATE.YEAR_1 + +------------------------------------------------------------------------ +根据省ID,年份查询和地市(1-12月)的建档孕妇数 + + + + + +------------------------------------------------------------------------ +根据省ID,年份查询和地市的高危孕妇数(高危颜色、高危值对应的数量) + + + + + + + + +------------------------------------------------------ +1. 查询每个省当前的高危总人数 +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + COUNT(A.RECORD_ID) AS val +FROM ODS_F_GRAVIDA_RECORD A, + ODS_F_EXAMINE_HISTORY B, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.RECORD_ID=B.RECORD_ID + AND A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND B.INSERT_DATE=E.DATE_1 + AND A.NOW_WEEKS<42 + AND B.HIGH_RISK_FACTOR<>'健康' + AND B.HIGH_RISK_FACTOR IS NOT NULL + AND B.EXAMINE_HISTORY_NUM=1 + AND B.INSERT_DATE<=TRUNC(SYSDATE) +GROUP BY D.PROVINCE_ID, + D.PROVINCE + + +------------------------------------------------------ +1.1. 查询每个省内各地区当前的高危总人数 +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + COUNT(A.RECORD_ID) AS val +FROM ODS_F_GRAVIDA_RECORD A, + ODS_F_EXAMINE_HISTORY B, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.RECORD_ID=B.RECORD_ID + AND A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND B.INSERT_DATE=E.DATE_1 + AND B.HIGH_RISK_FACTOR<>'健康' + AND B.HIGH_RISK_FACTOR IS NOT NULL + AND A.NOW_WEEKS<42 + AND B.EXAMINE_HISTORY_NUM=1 + AND B.INSERT_DATE<=TRUNC(SYSDATE) + AND D.PROVINCE_ID=130000 +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY + + +------------------------------------------------------ +1.2. 查询每个地区内各区县当前的高危总人数 +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + D.AREA_COUNTY_ID as area_id, + D.AREA_COUNTY as area_name, + COUNT(A.RECORD_ID) AS val +FROM ODS_F_GRAVIDA_RECORD A, + ODS_F_EXAMINE_HISTORY B, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.RECORD_ID=B.RECORD_ID + AND A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND B.INSERT_DATE=E.DATE_1 + AND A.NOW_WEEKS<42 + AND B.HIGH_RISK_FACTOR<>'健康' + AND B.HIGH_RISK_FACTOR IS NOT NULL + AND B.EXAMINE_HISTORY_NUM=1 + AND B.INSERT_DATE<=TRUNC(SYSDATE) + AND D.PROVINCE_ID=130000 + AND D.CITY_ID=130300 +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY, + D.AREA_COUNTY_ID, + D.AREA_COUNTY + + + +------------------------------------------------------ +2. 查询每个省近30天的建档总人数 +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + COUNT(A.RECORD_ID) AS val +FROM ODS_F_GRAVIDA_RECORD A, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND A.CREATE_DATE=E.DATE_1 + AND A.CREATE_DATE<=TRUNC(SYSDATE) + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30) +GROUP BY D.PROVINCE_ID, + D.PROVINCE + + +------------------------------------------------------ +2.1. 查询每个省内各地区近30天的建档总人数 +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + COUNT(A.RECORD_ID) AS val +FROM ODS_F_GRAVIDA_RECORD A, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND A.CREATE_DATE=E.DATE_1 + AND D.PROVINCE_ID=130000 + AND A.CREATE_DATE<=TRUNC(SYSDATE) + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30) +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY + + +------------------------------------------------------ +2.2. 查询每个地区内各区县近30天的建档总人数 +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + D.AREA_COUNTY_ID as area_id, + D.AREA_COUNTY as area_name, + COUNT(A.RECORD_ID) AS val +FROM ODS_F_GRAVIDA_RECORD A, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND A.CREATE_DATE=E.DATE_1 + AND D.PROVINCE_ID=130000 + AND D.CITY_ID=130300 + AND A.CREATE_DATE<=TRUNC(SYSDATE) + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30) +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY, + D.AREA_COUNTY_ID, + D.AREA_COUNTY + + + +------------------------------------------------------ +3. 按省或市或地区查询区域内当前高危总数(按颜色分组、按高危项分组) +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + D.AREA_COUNTY_ID as area_id, + D.AREA_COUNTY as area_name, + F.HIGH_RISK_GROUP as group_name, + F.HIGH_RISK_CONTENT as risk_name, + COUNT(A.RECORD_ID) AS val +FROM ODS_F_GRAVIDA_RECORD A, + ODS_F_EXAMINE_HISTORY B, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E, + ODS_F_HIGH_RISK_VALUE F +WHERE A.RECORD_ID=B.RECORD_ID + AND A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND B.INSERT_DATE=E.DATE_1 + AND B.EXAMINE_ID=F.EXAMINE_ID + AND A.NOW_WEEKS<42 + AND F.HIGH_RISK_CONTENT<>'健康' + AND B.EXAMINE_HISTORY_NUM=1 + AND E.YEAR_1=2016 + AND D.PROVINCE_ID=130000 + AND D.CITY_ID=130300 +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY, + D.AREA_COUNTY_ID, + D.AREA_COUNTY, + F.HIGH_RISK_GROUP, + F.HIGH_RISK_CONTENT + + + +------------------------------------------------------ +4. 按省或市或地区查询区域内近12个自然月每月建档人数 +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + D.AREA_COUNTY_ID as area_id, + D.AREA_COUNTY as area_name, + E.YEAR_MONTH as year, + COUNT(A.RECORD_ID) AS val +FROM ODS_F_GRAVIDA_RECORD A, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND A.CREATE_DATE=E.DATE_1 + AND D.PROVINCE_ID=130000 + AND D.CITY_ID=130300 + AND D.AREA_COUNTY_ID=130302 + AND A.CREATE_DATE<=TRUNC(SYSDATE) + AND A.CREATE_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-11)) +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY, + D.AREA_COUNTY_ID, + D.AREA_COUNTY, + E.YEAR_MONTH +ORDER BY E.YEAR_MONTH + + +------------------------------------------------------ +4.1. 按省或市或地区查询区域内近12个自然周每周建档人数(如不能按周就同4.2查询近90天按天的) +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + D.AREA_COUNTY_ID as area_id, + D.AREA_COUNTY as area_name, + E.DATE_1 as ymd, + COUNT(A.RECORD_ID) AS val +FROM ODS_F_GRAVIDA_RECORD A, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND A.CREATE_DATE=E.DATE_1 + AND D.PROVINCE_ID=130000 + AND D.CITY_ID=130300 + AND D.AREA_COUNTY_ID=130302 + AND A.CREATE_DATE<=TRUNC(SYSDATE) + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-91) +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY, + D.AREA_COUNTY_ID, + D.AREA_COUNTY, + E.DATE_1 +ORDER BY E.DATE_1 + + +------------------------------------------------------ +4.2. 按省或市或地区查询区域内近30天每天建档人数 +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + D.AREA_COUNTY_ID as area_id, + D.AREA_COUNTY as area_name, + E.DATE_1 as ymd, + COUNT(A.RECORD_ID) AS val +FROM ODS_F_GRAVIDA_RECORD A, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND A.CREATE_DATE=E.DATE_1 + AND D.PROVINCE_ID=130000 + AND D.CITY_ID=130300 + AND D.AREA_COUNTY_ID=130302 + AND A.CREATE_DATE<=TRUNC(SYSDATE) + AND A.CREATE_DATE>=(TRUNC(SYSDATE)-30) +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY, + D.AREA_COUNTY_ID, + D.AREA_COUNTY, + E.DATE_1 +ORDER BY E.DATE_1 + + + +------------------------------------------------------ +5. 按省或市或地区查询区域内近12个自然月每月初诊人数、复诊人数 +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + D.AREA_COUNTY_ID as area_id, + D.AREA_COUNTY as area_name, + E.YEAR_MONTH as year, + SUM(DECODE(B.EXAMINE_CATEGORY_ID,1,1,0)) AS val, + SUM(DECODE(B.EXAMINE_CATEGORY_ID,2,1,0)) AS val2 +FROM ODS_F_GRAVIDA_RECORD A, + ODS_F_EXAMINE_HISTORY B, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.RECORD_ID=B.RECORD_ID + AND A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND B.INSERT_DATE=E.DATE_1 + AND B.INSERT_DATE<=TRUNC(SYSDATE) + AND B.INSERT_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-11)) + AND D.PROVINCE_ID=130000 + AND D.CITY_ID=130300 + AND D.AREA_COUNTY_ID=130302 +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY, + D.AREA_COUNTY_ID, + D.AREA_COUNTY, + E.YEAR_MONTH +ORDER BY E.YEAR_MONTH + + +------------------------------------------------------ +5.1. 按省或市或地区查询区域内近12个自然周每周初诊人数、复诊人数(如不能按周就同5.2查询近90天按天的) +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + D.AREA_COUNTY_ID as area_id, + D.AREA_COUNTY as area_name, + E.DATE_1 as ymd, + SUM(DECODE(B.EXAMINE_CATEGORY_ID,1,1,0)) AS val, + SUM(DECODE(B.EXAMINE_CATEGORY_ID,2,1,0)) AS val2 +FROM ODS_F_GRAVIDA_RECORD A, + ODS_F_EXAMINE_HISTORY B, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.RECORD_ID=B.RECORD_ID + AND A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND B.INSERT_DATE=E.DATE_1 + AND B.INSERT_DATE<=TRUNC(SYSDATE) + AND B.INSERT_DATE>=(TRUNC(SYSDATE)-90) + AND D.PROVINCE_ID=130000 + AND D.CITY_ID=130300 + AND D.AREA_COUNTY_ID=130302 +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY, + D.AREA_COUNTY_ID, + D.AREA_COUNTY, + E.DATE_1 +ORDER BY E.DATE_1 + + +------------------------------------------------------ +5.2. 按省或市或地区查询区域内近30天每天初诊人数、复诊人数 +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + D.AREA_COUNTY_ID as area_id, + D.AREA_COUNTY as area_name, + E.DATE_1 as ymd, + SUM(DECODE(B.EXAMINE_CATEGORY_ID,1,1,0)) AS val, + SUM(DECODE(B.EXAMINE_CATEGORY_ID,2,1,0)) AS val2 +FROM ODS_F_GRAVIDA_RECORD A, + ODS_F_EXAMINE_HISTORY B, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E +WHERE A.RECORD_ID=B.RECORD_ID + AND A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND B.INSERT_DATE=E.DATE_1 + AND B.INSERT_DATE<=TRUNC(SYSDATE) + AND B.INSERT_DATE>=(TRUNC(SYSDATE)-30) + AND D.PROVINCE_ID=130000 + AND D.CITY_ID=130300 + AND D.AREA_COUNTY_ID=130302 +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY, + D.AREA_COUNTY_ID, + D.AREA_COUNTY, + E.DATE_1 +ORDER BY E.DATE_1 + + + +------------------------------------------------------ +6. 按省或市或地区查询区域内近6个自然月每月产检中历史高危人数(按颜色分组) +SELECT D.PROVINCE_ID as province_id, + D.PROVINCE as province_name, + D.CITY_ID as city_id, + D.CITY as city_name, + D.AREA_COUNTY_ID as area_id, + D.AREA_COUNTY as area_name, + F.HIGH_RISK_GROUP as group_name, + E.YEAR_MONTH as year, + COUNT(A.RECORD_ID) AS val +FROM ODS_F_GRAVIDA_RECORD A, + ODS_F_EXAMINE_HISTORY B, + ODS_D_HOSPITAL C, + ODS_D_AREA_COUNTY D, + ODS_D_DIM_DATE E, + ODS_F_HIGH_RISK_VALUE F +WHERE A.RECORD_ID=B.RECORD_ID + AND A.HOSPITAL_NO=C.HOSPITAL_NO + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID + AND B.INSERT_DATE=E.DATE_1 + AND B.EXAMINE_ID=F.EXAMINE_ID + AND F.HIGH_RISK_CONTENT<>'健康' + AND F.HIGH_RISK_GROUP<>'其他' + AND B.EXAMINE_HISTORY_NUM=1 + AND B.INSERT_DATE<=TRUNC(SYSDATE) + AND B.INSERT_DATE>=TRUNC(ADD_MONTHS(SYSDATE,-6)) + AND D.PROVINCE_ID=130000 + AND D.CITY_ID=130300 + AND D.AREA_COUNTY_ID=130302 +GROUP BY D.PROVINCE_ID, + D.PROVINCE, + D.CITY_ID, + D.CITY, + D.AREA_COUNTY_ID, + D.AREA_COUNTY, + F.HIGH_RISK_GROUP, + E.YEAR_MONTH +ORDER BY F.HIGH_RISK_GROUP,E.YEAR_MONTH + + + + + + + + + +