【问题标题】:Update using group on Union Incorect Syntax Error在联合不正确的语法错误上使用组更新
【发布时间】:2020-06-10 11:24:42
【问题描述】:
我需要在更新中使用 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;
我在 group by 中收到错误语法
如果我将此查询与 Select 一起使用而不是更新,它可以正常工作
如何通过错误修复组?
【问题讨论】:
标签:
sql
sql-server
tsql
sql-update
sql-server-2014
【解决方案1】:
我建议将聚合移至子查询。我还删除了外部查询中的 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;