假如A表该表的数据结构如下:有一B表跟A表的数据结构是一样的,其中B表的数据中叶子节点是唯一的。
数据记录如下,
ID PID SN NAME HF HZ CL HY YX
1 -1 1 2015年 12 21 26 14 20
2 1 1.1 --科研 5 9 13 6 13
3 2 1.1.1 ----CJ-001研制 2 4 6 4 8
4 2 1.1.2 -----CJ-002研制 3 5 7 2 5
5 1 1.2 --运营 7 12 13 8 7
6 5 1.2.1 -----综合系统研发 5 8 7 4 3
7 5 1.2.2 ---- 系统集成研究 2 4 6 4 2
其中、PID标识每个节点的父ID,SN代表每个节点的序号,HF(合同发票金额)、HZ(合同资金金额) CL(差旅费)、HY(会议费)、YX(运行辅助费)
这个表的金额列如下
每个金额类型都有四个季度、12个月份,如合同发票金额的命名就是
Q1-Q4代表4季度、M1-M2代表12月份,一共五类费用,列共5*4+5*12=80列
HFQ1、HFQ2、HFQ3、HFQ4
HFM1、HFM2,HFM3、HFM4,HFM5,HFM6,HFM7,HFM8,HFM9,HFM10,HFM12
HZQ1、HZQ2、HZQ3、HZQ4
HZM1、HZM2,HZM3、HZM4,HZM5,HZM6,HZM7,HFM8,HFM9,HFM10,HFM12
CLQ1、CLQ2、CLQ3、CLQ4
CLM1、CLM2,CLM3、CLM4,CLM5,CLM6,CLM7,CLM8,CLM9,CLM10,CLM12
HYQ1、HYQ2、HYQ3、HYQ4
HYM1、HYM2,HYM3、HYM4,HYM5,HYM6,HYM7,HYM8,HYM9,HYM10,HYM12
YXQ1、YXQ2、YXQ3、YXQ4
YXM1、YXM2,YXM3、YXM4,YXM5,YXM6,YXM7,YXM8,YXM9,YXM10,YXM12
这80列都在上个A表,B表跟A表的数据结构是一样的。
目前我的业务是:数据都在B表中存储着,A表的结构是跟B表一样,需要把B表的子节点更新A表,然后A表通过叶子节点逐级汇总,也就是子节点等于父节点之和,依次往上累加,基于此查询形成一个临时表,然后通过此临时表再更新A表所有字段。
但是由于我这个表要计算的列实在太多,目前测试数据库的数据将近3000行,计算所有的列需要花费12分钟,正式数据库的列都将近5000行,,会花费更多的时间。有没有高校的方法实现上述业务。