Sql server 如何在T-SQL合并更新中使用Select语句作为源
好的,我的第一个问题在这里 我是T-SQL和MSSQL服务器的新手,所以请耐心等待 我一直在使用MERGE命令,并使用它来帮助同步数据库中的一些表,到目前为止,它工作得很好 我的问题是。我有一个每天都有生产数据的表格,其中一部分数据包括正在生产的个别产品的净重 我想出了一个快速选择查询,它将遍历生产数据,并根据产品代码计算箱子的平均重量Sql server 如何在T-SQL合并更新中使用Select语句作为源,sql-server,tsql,merge,Sql Server,Tsql,Merge,好的,我的第一个问题在这里 我是T-SQL和MSSQL服务器的新手,所以请耐心等待 我一直在使用MERGE命令,并使用它来帮助同步数据库中的一些表,到目前为止,它工作得很好 我的问题是。我有一个每天都有生产数据的表格,其中一部分数据包括正在生产的个别产品的净重 我想出了一个快速选择查询,它将遍历生产数据,并根据产品代码计算箱子的平均重量 select ProductCode, AVG(NetWeight) FROM dbo.Production Group By ProductCode Orde
select ProductCode, AVG(NetWeight) FROM dbo.Production
Group By ProductCode
Order by ProductCode
在我的ProductMaster表中,我有一列是AverageWeight
我要做的是使用Select查询作为合并命令的源,我可以使用该命令更新ProductMaster表中的AverageWeight列
一旦开始工作,我会将其转换为一个存储过程,并将其安排为每天运行,这样当新产品在工厂中运行时,ProductMaster表会自动更新,并且它会使平均案例权重保持最新
我的理解是,您可以使用Select查询作为合并的源,但还没有找到它如何工作的好例子。
谢谢假设ProductCode是like列:
alter table ProductMasteradd AverageWeight number
merge into ProductMaster t
using(
select
ProductCode
, AverageWeight = AVG(NetWeight)
from dbo.Production
group By ProductCode
order by ProductCode
)s
on t.ProductCode = s.ProductCode
when matched then update
set t.AverageWeight = s.AverageWeight;
注意,使用merge时,必须以“;”结束语句,否则将收到错误 大家好,欢迎来到SO。我不明白你在这里想干什么。也许共享表结构、一些数据和所需的输出会有所帮助。这是一个很好的起点。