2016-05-07 31 views
0

我正在设计olap查找事实表的过程。目前,我不会允许用户运行olap查询,如自定义维度或切片。我将自己创建查询以运行特定报告。OLAP事实表空记录

我的问题是在这些报告的事实表上。我想避免更新现有的记录,只需插入多个维度的行。例如:

两个插件:

YEAR AMOUNT 
2016 1 
2016 1 

而不是一个插件,检查是否年= 2016存在,如果这样的话一个更新:

YEAR AMOUNT 
2016 2 

回答

0

使用的Upsert逻辑如下:

在插入源表与目标表的内连接时,匹配更新量字段或插入新记录。

insert into target (select * from source s, target t where s.year <> t.year); 

Update target T set T.amount = T.amount + S.amount 
from source S where T.year = S.year;