使用 group on Union Incorrect Syntax Error 进行更新

Update using group on Union Incorect Syntax Error

我需要在更新中使用 group by

Update t1 set t1.TemporaryStock = t1.TemporaryStock + isnull(sum(t2.Quantity),0) 
from inventorymaster t1 join 
(Select * from InventoryTransTemp Union all Select * from InventoryTrans)t2
on t1.InventoryItemID=t2.InventoryItemID where t2.TrnDocumentID=169452 
group by t2.InventoryItemID;

我在组中遇到错误语法

如果我将此查询与 Select 一起使用而不是更新,它工作正常 如何按错误修复组?

我建议将聚合移动到子查询。我还删除了外部查询中的 isnull(),因为我没有真正看到它的用途。

update t1 
set t1.TemporaryStock = t1.TemporaryStock + t2.sum_quantity
from inventorymaster t1 
inner join (
    select InventoryItemID, sum(quantity) sum_quantity
    from (
        select InventoryItemID, quantity from InventoryTransTemp where TrnDocumentID = 169452 
        union all Select InventoryItemID, quantity from InventoryTrans where TrnDocumentID = 169452
    ) t
    group by InventoryItemID
) t2 on t1.InventoryItemID = t2.InventoryItemID;