OES数据库表探查

200 阅读3分钟

OES数据库表探查

一、收入相关表

1、dept_income_month(需定制内容)

**说明:**科室收入项目明细表

(1)定制语句:

`SELECT
	a.year_month,
	a.comp_code,
	a.acct_year,
	a.acct_month,
	a.ordered_by,
	a.perform_by,
	a.charge_kind_id,
	a.source_type,	
	SUM ( a.workload ) AS workload,
	SUM ( a.amount ) AS amount
	
FROM
	dept_income_month a
	LEFT JOIN sys_charge_detail d ON a.charge_detail_id = d.detail_id 
GROUP BY
	a.year_month,
	a.comp_code,
	a.charge_kind_id,
	a.source_type,
	a.ordered_by,
	a.perform_by,	
	a.acct_year,
	a.acct_month
HAVING (a.comp_code='100101' or a.comp_code='100102')`

(2)表结构

image-20230915094113996.png

说明:

comp_code:本部院区---’100101‘,滨湖院区---’100102‘

ordered_by:开单科室id

perform_by:执行科室id

charge_kind_id:收入项目类型

source_type:门诊收入---’O‘,和住院收入---’I‘

workload:收入项目工作量(因按收入小项目计数,故不使用)

amount:收入金额

2、dept_st_income_subj_history(不使用,无法准确进行收入项目分类)

**说明:**科室收入汇总表,注意,其中的收入分类编码与sys_charge_kind表中的分类编码并不一致,需要改进

二、成本相关表

1、 dept_cost_data(不使用)

**说明:**成本归集后数据(直接成本数据),其中 [cost_attr] =7字段是自有资金的成本数据

2、dept_st_cost_history

**说明:**包含全成本和直接成本数据,其中 [cost_attr] =7字段是自有资金的成本数据

(1)定制语句:

SELECT
	cost_id,
	comp_code,
	acct_year,
	acct_month,
	dept_id,
	dept_code,
	cost_attr,
	cost_subj_id,
	cost_subj_code,
	tot_amount,
	prime_cost 
FROM
	dept_st_cost_history 
WHERE
	( comp_code = '100101' OR comp_code = '100102' ) 
	AND cost_attr = '07'

说明:

dept_id:科室id

dept_code:科室编码

cost_subj_id:成本项目类型id

cost_subj_code:成本项目分类编码

tot_amount:全成本

prime_cost:直接成本

(2)表结构

image-20230915095101350.png

三、字典相关表

1、dept_cost_subj

**说明:**成本项目编码表,其中 [cost_attr] =7字段是自有资金的成本数据

(1)表结构

image-20230915101611750.png

说明:

cost_class_code:成本大分类--01人员成本,02材料成本,03药品成本,04固资折旧,05无形资产摊销,06计提专用基金,07其他费用

cost_attribute:未知

2、dept_dict_custom_dept、dept_dict_custom_dept_rela

**说明:**自定义科室相关,定义编码以及与核算科室对应关系编码

(1)表结构:

image-20230915102117031.png

image-20230915102139961.png

### 3、sys\_dept

**说明:**科室编码表,其中数据表中一般使用:dept_id,注意院区:comp_code、是否末级:is_last

(1)定制语句:

SELECT
	dept_id,
	comp_code,
	dept_code,
	dept_name,
	dept_name_all,
	super_code,
	type_code,
	attr_code 
FROM
	[dbo].[sys_dept] 
WHERE
	( comp_code = '100101' OR comp_code = '100102' ) 
	AND is_last = '1'

说明:

type_code:科室分类,ABCD分别代表管理科室、医辅科室、医技科室和临床科室

attr_code:门诊收入---’O‘,和住院收入---’I‘,null---其他类型

(2)表结构:

image-20230915100110442.png

4、sys_charge_kind

**说明:**收入分类编码表

(1)表结构:

image-20230915102030497.png

四、有点意思的表

1、dept_dict_base

**说明:**里面的字段:base_formula 内容有点意思

五、生成最终数据

1、科室字典:dict_dept

SELECT
	d.dept_id,
	d.comp_code,
	d.dept_code,
	d.dept_name,
	d.type_code,
	d.attr_code,
	c.custom_dept_id,
	c.custom_dept_code,
	c.custom_dept_name 
FROM
	dict_sys_dept AS d
	LEFT JOIN (
	SELECT
		a.comp_code,
		a.custom_dept_id,
		b.custom_dept_code,
		b.custom_dept_name,
		a.dept_id,
		b.dept_type 
	FROM
		"dict_dept_dict_custom_dept_rela" AS a,
		"dict_dept_dict_custom_dept" AS b 
	WHERE
	a.custom_dept_id = b.custom_dept_id 
	) AS c ON d.dept_id = c.dept_id

2、开单收入:data_income_ordered_by

SELECT
	e.comp_code,
	e.year_month,
	e.dept_code,
	e.dept_name,
	e.custom_dept_name,
	e.charge_kind_name,
	e.source_type,
	sum( amount ) AS amount 
FROM
	(
	SELECT
		c.comp_code,
		c.year_month,
		c.acct_year,
		c.acct_month,
		c.dept_code,
		c.dept_name,
		c.custom_dept_name,
		d.charge_kind_name,
		c.source_type,
		c.amount 
	FROM
		(
		SELECT
			a.comp_code,
			a.year_month,
			a.acct_year,
			a.acct_month,
			b.dept_code,
			b.dept_name,
			b.custom_dept_name,
			a.charge_kind_id,
			a.source_type,
			a.amount 
		FROM
			"data_dept_income_month" AS a
			LEFT JOIN dict_dept AS b ON a.ordered_by = b.dept_id 
		) AS c
		LEFT JOIN dict_sys_charge_kind AS d ON c.charge_kind_id = d.charge_kind_id 
	) AS e 
GROUP BY
	e.comp_code,
	e.year_month,
	e.dept_code,
	e.dept_name,
	e.custom_dept_name,
	e.charge_kind_name,
	e.source_type

3、执行收入:data_income_perform_by

SELECT
	e.comp_code,
	e.year_month,
	e.dept_code,
	e.dept_name,
	e.custom_dept_name,
	e.charge_kind_name,
	e.source_type,
	sum( amount ) AS amount 
FROM
	(
	SELECT
		c.comp_code,
		c.year_month,
		c.acct_year,
		c.acct_month,
		c.dept_code,
		c.dept_name,
		c.custom_dept_name,
		d.charge_kind_name,
		c.source_type,
		c.amount 
	FROM
		(
		SELECT
			a.comp_code,
			a.year_month,
			a.acct_year,
			a.acct_month,
			b.dept_code,
			b.dept_name,
			b.custom_dept_name,
			a.charge_kind_id,
			a.source_type,
			a.amount 
		FROM
			"data_dept_income_month" AS a
			LEFT JOIN dict_dept AS b ON a.perform_by = b.dept_id 
		) AS c
		LEFT JOIN dict_sys_charge_kind AS d ON c.charge_kind_id = d.charge_kind_id 
	) AS e 
GROUP BY
	e.comp_code,
	e.year_month,
	e.dept_code,
	e.dept_name,
	e.custom_dept_name,
	e.charge_kind_name,
	e.source_type

4、科室成本:data_cost

SELECT
	e.comp_code,
	e.year_month,
	e.dept_code,
	e.dept_name,
	e.custom_dept_name,
	e.type_code,
	e.attr_code,
	e.cost_subj_code,
	e.cost_subj_name,
	e.cost_class_code,
	sum( e.tot_amount ) AS tot_amount,
	sum( e.prime_cost ) AS prime_cost 
FROM
	(
	SELECT
		c.comp_code,
		c.year_month,
		d.dept_code,
		d.dept_name,
		d.custom_dept_name,
		d.type_code,
		d.attr_code,
		c.cost_subj_code,
		c.cost_subj_name,
		c.cost_class_code,
		c.tot_amount,
		c.prime_cost 
	FROM
		(
		SELECT
			a.comp_code,
			a.acct_year || a.acct_month AS year_month,
			a.dept_id,
			a.cost_subj_code,
			b.cost_subj_name,
			b.cost_class_code,
			a.tot_amount,
			a.prime_cost 
		FROM
			"data_dept_st_cost_history" AS a
			LEFT JOIN dict_dept_cost_subj AS b ON a.cost_subj_id = b.cost_subj_id 
		) AS c
		LEFT JOIN dict_dept AS d ON c.dept_id = d.dept_id 
	) AS e 
GROUP BY
	e.comp_code,
	e.year_month,
	e.dept_code,
	e.dept_name,
	e.custom_dept_name,
	e.type_code,
	e.attr_code,
	e.cost_subj_code,
	e.cost_subj_name,
	e.cost_class_code