这个就是每个省份 每年的建档孕妇数 SELECT ODS_D_PROVINCE.PROVINCE_ID as province_id, ODS_D_PROVINCE.PROVINCE as province_name, ODS_D_DIM_DATE.YEAR_1 as year, COUNT(ODS_F_GRAVIDA_RECORD.RECORD_ID) as val FROM ODS_D_PROVINCE, ODS_D_DIM_DATE, ODS_F_GRAVIDA_RECORD, ODS_D_HOSPITAL, ODS_D_CITY WHERE ( ODS_F_GRAVIDA_RECORD.HOSPITAL_NO=ODS_D_HOSPITAL.HOSPITAL_NO ) AND ( ODS_D_CITY.PROVINCE_ID=ODS_D_PROVINCE.PROVINCE_ID ) AND ( ODS_F_GRAVIDA_RECORD.INSERT_DATE=ODS_D_DIM_DATE.DATE_1 ) AND ( ODS_D_HOSPITAL.CITY_ID=ODS_D_CITY.CITY_ID(+) ) AND ODS_D_DIM_DATE.YEAR_1=2016 GROUP BY ODS_D_PROVINCE.PROVINCE_ID, ODS_D_PROVINCE.PROVINCE, ODS_D_DIM_DATE.YEAR_1 --------------------------------------------------- 这个就是每个省份 每年的高危孕妇数 SELECT ODS_D_PROVINCE.PROVINCE_ID as province_id, ODS_D_PROVINCE.PROVINCE as province_name, ODS_D_DIM_DATE.YEAR_1 as year, COUNT(ODS_F_GRAVIDA_RECORD.RECORD_ID) as val FROM ODS_D_PROVINCE, ODS_D_DIM_DATE, ODS_F_GRAVIDA_RECORD, ODS_F_EXAMINE_HISTORY, ODS_D_HOSPITAL, ODS_D_CITY WHERE ( ODS_F_GRAVIDA_RECORD.RECORD_ID=ODS_F_EXAMINE_HISTORY.RECORD_ID(+) ) AND ( ODS_F_GRAVIDA_RECORD.HOSPITAL_NO=ODS_D_HOSPITAL.HOSPITAL_NO ) AND ( ODS_D_CITY.PROVINCE_ID=ODS_D_PROVINCE.PROVINCE_ID ) AND ( ODS_F_GRAVIDA_RECORD.INSERT_DATE=ODS_D_DIM_DATE.DATE_1 ) AND ( ODS_D_HOSPITAL.CITY_ID=ODS_D_CITY.CITY_ID(+) ) AND ( ODS_F_EXAMINE_HISTORY.EXAMINE_HISTORY_NUM = 1 AND ODS_F_EXAMINE_HISTORY.HIGH_RISK_FACTOR NOT IN ( '健康','健康,无' ) ) AND ODS_D_DIM_DATE.YEAR_1=2016 GROUP BY ODS_D_PROVINCE.PROVINCE_ID, ODS_D_PROVINCE.PROVINCE, 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 ------------------------------------------------------- 6.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, D.AREA_COUNTY_ID as area_id, D.AREA_COUNTY as area_name, F.HIGH_RISK_GROUP as group_name, E.DATE_2 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(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, F.HIGH_RISK_GROUP, E.DATE_2 ORDER BY F.HIGH_RISK_GROUP,E.DATE_2;