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'

    均可。
  • 相关阅读:
    java8 日期时间之间的关系
    redis bind连不上的坑
    mysql 表结构转excel表格
    软件工程实践总结
    Beta答辩总结
    Beta 冲刺(7/7)
    Beta 冲刺(6/7)
    Beta 冲刺(5/7)
    Beta 冲刺(4/7)
    Beta 冲刺(3/7)
  • 原文地址:https://www.cnblogs.com/jetz/p/247595.html
Copyright © 2011-2022 走看看