zoukankan      html  css  js  c++  java
  • 使用子查询时应当注意的

    在一个查询中:

    UPDATE a
    SET a.scts = b.v1, a.YCYL = b.v2, a.YCSL = b.v3
    FROM kfdbsyy a,
              (SELECT f_wellnumber, COUNT(*) AS v1, SUM(f_fule) AS v2,
                   SUM(f_totalliquid - f_fule) AS v3
             FROM (SELECT *
                     FROM CY_WELLRECORD
                     WHERE f_reporttime LIKE '2004-06%') 
             GROUP BY f_wellnumber
    ) b
    WHERE a.JH = b.f_wellnumber AND a.ny = '200406'

    红色在子查询单独运行没有问题,但整个运行,老是报告group附近有错。反复试验,发现跟内部的子查询有关。改为
    UPDATE a
    SET a.scts = b.v1, a.YCYL = b.v2, a.YCSL = b.v3
    FROM kfdbsyy a,
              (SELECT f_wellnumber, COUNT(*) AS v1, SUM(f_fule) AS v2,
                   SUM(f_totalliquid - f_fule) AS v3
             FROM (SELECT *
                     FROM CY_WELLRECORD
                     WHERE f_reporttime LIKE '2004-06%')  as c
             GROUP BY c.f_wellnumber) b
    WHERE a.JH = b.f_wellnumber AND a.ny = '200406'
    或者
    UPDATE a
    SET a.scts = b.v1, a.YCYL = b.v2, a.YCSL = b.v3
    FROM kfdbsyy a,
              (SELECT f_wellnumber, COUNT(*) AS v1, SUM(f_fule) AS v2,
                   SUM(f_totalliquid - f_fule) AS v3
             FROM (SELECT *
                     FROM CY_WELLRECORD
                     WHERE f_reporttime LIKE '2004-06%') DERIVEDTBL
             GROUP BY f_wellnumber) b
    WHERE a.JH = b.f_wellnumber AND a.ny = '200406'

    均可。
  • 相关阅读:
    如何更好地理解闭包
    抽象类和抽象方法以及和接口区别
    JavaScript中如何理解如何理解Array.apply(null, {length:5})
    Java线程中的同步
    Python前世今生以及种类、安装环境
    大数据中的用户画像
    Java web每天学之Servlet工作原理详情解析
    Go语言操作MySQL数据库
    老集群RAC双网卡绑定
    nmcli配置ipv6
  • 原文地址:https://www.cnblogs.com/jetz/p/247595.html
Copyright © 2011-2022 走看看