22,209
社区成员
发帖
与我相关
我的任务
分享
create table if not exists V_MEDICAL_INCOME
(
areacode varchar(16) null,
areaname varchar(32) null,
APPLYDEPARTMENTCODE varchar(16) null,
APPLYDEPARTMENTNAME varchar(32) null,
EXECUTIONDEPARTMENTCODE varchar(16) null,
EXECUTIONDEPARTMENTNAME varchar(32) null,
EXECUTIONDEPARTMENTTYPE varchar(4) null,
OUTPATIENT varchar(4) null,
CHARGEID varchar(16) null,
TYPE varchar(32) null,
DRUGCODE varchar(32) null,
INCOME decimal(16,2) null,
PAYMENTROUTE varchar(16) null,
CHARGEAT datetime null,
RJSJ datetime null,
RJSH int null,
SFYID varchar(16) null,
PATIENT_NO varchar(16) null
)
comment '视图-收入明细';
create index V_MEDICAL_INCOME_INDEX
on V_MEDICAL_INCOME (CHARGEAT);
create index V_MEDICAL_INCOME_INDEX_RJSH
on V_MEDICAL_INCOME (RJSH);
create table if not exists V_INCOME_RJSH
(
opercode varchar(16) null,
checkflag varchar(4) null,
checkdate datetime null,
begindate datetime null,
enddate datetime null
)
comment '视图-日结审核';
create index V_INCOME_RJSH_INDEX
on V_INCOME_RJSH (checkdate);
create index idx_opercode
on V_INCOME_RJSH (opercode);
EXPLAIN
SELECT max(m.areaCode) AS area_code,
m.areaName AS area_name,
max(m.departmentCode) AS department_code,
m.departmentName AS department_name,
sum(m.income) AS income,
CASE m.type
WHEN '卫材' THEN 1
WHEN '化验费' THEN 1
WHEN '检查费' THEN 1
WHEN '西药' THEN 1
WHEN '中成药' THEN 1
WHEN '中草药费' THEN 1
WHEN '外送项目' THEN 1
ELSE 2 END AS service
FROM (
SELECT t.INCOME AS income,
t.APPLYDEPARTMENTCODE AS departmentCode,
t.APPLYDEPARTMENTNAME AS departmentName,
cast(t.AREACODE AS UNSIGNED INT) AS areaCode,
t.AREANAME AS areaName,
t.TYPE AS type
FROM V_MEDICAL_INCOME t,
(SELECT DISTINCT tt.OPERCODE, tt.BEGINDATE, tt.ENDDATE, tt.CHECKDATE
FROM V_INCOME_RJSH tt
WHERE tt.CHECKFLAG = 2
AND tt.CHECKDATE BETWEEN '2019-05-01 00:00:00' AND '2019-05-01 23:59:59') ff
WHERE t.OUTPATIENT = 1
AND t.TYPE != '挂号费'
AND t.CHARGEAT >= ff.BEGINDATE
AND t.CHARGEAT >= ff.ENDDATE
AND t.sfyid = ff.opercode
) m
GROUP BY areaName, departmentName, type
AND t.CHARGEAT BETWEEN '2019-05-01 00:00:00' AND '2019-05-01 23:59:59'