我需要根据条件和另一个维度表的引用,从同一个表中的另一行和列更新事实表中的值。
我试图找到的是一个SQL查询,它将qty更新为qty_ref,其中站点和日期匹配 - 并且当参考表中存在匹配时。我希望我的照片有助于解释这一点。
我在SQL Server 2016中使用Azure SQL数据库。
我的事实表包含数百万行,而dim_ref表可以增长到数千行。
答案 0 :(得分:0)
使用内部联接进行简单更新应该可以解决问题:
UPDATE f1
SET qty_ref = f2.qty
FROM fact_sales f1
INNER JOIN dim_item_ref d ON(f1.item = d.item)
INNER JOIN fact_sales f2 ON(d.item_ref = f2.item)
WHERE f1.site = f2.site
AND f1.date = f2.date