MSSQL:根据条件更新来自同一 table 的另一行和另一列的值
MSSQL: Update value from another row and another column from the same table based on conditions
我实际上需要根据条件和来自另一个维度 table 的引用从同一 table 的另一行和另一列更新值 table。
包含销售行样本(两个项目,两天,两个站点)。
在此示例中仅包含一行。
我试图找到的是一个 SQL 查询,该查询将站点和日期匹配的数量更新为 qty_ref - 当参考 table 中有匹配时。我希望我的图片有助于解释这一点。
我在 SQL Server 2016 中使用 Azure SQL 数据库。
我的事实 table 包含数百万行,dim_ref table 可以增长到几千行。
使用内部联接的简单更新应该可以解决问题:
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
我实际上需要根据条件和来自另一个维度 table 的引用从同一 table 的另一行和另一列更新值 table。
包含销售行样本(两个项目,两天,两个站点)。
在此示例中仅包含一行。
我试图找到的是一个 SQL 查询,该查询将站点和日期匹配的数量更新为 qty_ref - 当参考 table 中有匹配时。我希望我的图片有助于解释这一点。
我在 SQL Server 2016 中使用 Azure SQL 数据库。
我的事实 table 包含数百万行,dim_ref table 可以增长到几千行。
使用内部联接的简单更新应该可以解决问题:
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