有人可以在以下负载中帮助我吗?
我每天都会得到一个文件,并使用SSIS和SQL加载它。
提交日期2018年5月8日:
Date product_name Net_units
01/08/2018 T1 8
申请日期06/08/2018:
Date product_name Net_units
01/08/2018 T1 18
提交日期2018年7月8日:
Date product_name Net_units
01/08/2018 T1 24
以下是我的查询以加载此有机数据文件:
insert into pdct_fact
select *
from staging_temp st
left outer join pdct_fact ft on st.date = ft.date
and st.product_name = ft.product_name
由于此记录是在2018年6月8日以net_unit 0f 18插入的,因此在07/08/2018加载时它被忽略,并且net_units仍为18,因此应该将pdct_fact中的net_units更新为24最新记录。
对此有任何帮助吗?谢谢。
答案 0 :(得分:2)
您应该进行合并,并在匹配时将事实表的单位设置为等于登台表的单位。见下文。
MERGE INTO pdct_fact ft
USING staging_temp st
ON ft.date = st.date and ft.product_name = st.product_name
WHEN MATCHED
THEN
UPDATE SET
ft.net_units = st.net_units