【问题标题】: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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多