zoukankan      html  css  js  c++  java
  • 聚合不应出现在 UPDATE 语句的集合列表中

    修改语句:

    update A set WZCount=ISNULL(WZCount,0)+(select SUM(WZCount) from T_PM_OutStock_SUB where MaterialID =A.MaterialID and _MainID='{_AutoID}') from T_PM_MaterialStock A,T_PM_OutStock_SUB

    系统报错:

    聚合不应出现在 UPDATE 语句的集合列表中

    问题:

    修改语句中不能出现聚合函数这一类的

    解决问题:

    那就把聚合函数放到select 查询与查出来当成一个数据表   再用数据表和原先的数据表匹配 进行添加

    修改之后;

    UPDATE T_PM_MaterialStock
    SET WZCount = WZCount+TB.ALLCount
    FROM (SELECT
    b.MaterialID,SUM(b.Count) AS ALLCount
    FROM
    T_PM_MaterialStock a
    INNER JOIN
    T_PM_OutStock_SUB b
    ON a.MaterialID = b.MaterialID
    WHERE b._MainID='{_AutoID}'
    GROUP BY
    b.MaterialID
    ) AS TB
    WHERE
    T_PM_MaterialStock.MaterialID = TB.MaterialID

    正常示例:

    UPDATE    库存表2
    SET 库存数量 = TB.剩余数量
    FROM (SELECT
    入库表.条形码,SUM(入库表.剩余数量) AS 剩余数量
    FROM
    库存表2
    INNER JOIN
    入库表
    ON 库存表2.条形码 = 入库表.条形码
    GROUP BY
    入库表.条形码
    ) AS TB
    WHERE
    库存表2.条形码 = TB.条形码
    另外一个语句写的例子:

    UPDATE T_PM_MaterialEntry_SUB
    SET Surplus = ISNULL(Surplus,0)+TB.ALLCount
    FROM (SELECT
    b.SourceNumID,SUM(b.Count) AS ALLCount
    FROM
    T_PM_MaterialEntry_SUB a
    INNER JOIN
    T_PM_OutStock_SUB b
    ON a._AutoID = b.SourceNumID
    WHERE b._MainID='{_AutoID}'
    GROUP BY
    b.SourceNumID
    ) AS TB
    WHERE
    T_PM_MaterialEntry_SUB._AutoID = TB.SourceNumID

  • 相关阅读:
    subprocess 子进程模块
    3.5 魔法方法
    ThinkPHP中,display和assign用法详解
    linux常用指令
    退出当前Mysql使用的db_name 的方式
    PHP中GD库是做什么用的? PHP GD库介绍11111111
    include跟include_once 以及跟require的区别
    全局变量跟局部变量
    关于define
    创建、删除索引---高级部分
  • 原文地址:https://www.cnblogs.com/zhangwei99com/p/8522138.html
Copyright © 2011-2022 走看看