使用子查询时应当注意的

在一个查询中:

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' 

均可。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏听雨堂

一次数据库的整理的sql语句

//查询以井结束的记录 SELECT f_wellnumber, SUBSTRING(f_wellnumber, 1, LEN(f_wellnumber) - ...

1859
来自专栏用户2442861的专栏

mysql按照天分区月表

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

2672
来自专栏Netkiller

重新整理AUTO_INCREMENT字段

节选择《Netkiller MySQL 手札》 13.9. 重新整理AUTO_INCREMENT字段 AUTO_INCREMENT 并非按照我们意愿,顺序排列...

3455
来自专栏idba

replace into 解析

在支持业务过程中,经常遇到开发咨询replace into 的使用场景以及注意事项,这里做个总结,从功能原理注意事项上做个说明。

1042
来自专栏Netkiller

重新整理AUTO_INCREMENT字段

节选择《Netkiller MySQL 手札》 13.9. 重新整理AUTO_INCREMENT字段 AUTO_INCREMENT 并非按照我们意愿,顺序排列,...

2896
来自专栏数据分析

[数据库基础]——快速浏览日期时间转换

阅读导航 数据库日期和时间类型 相互转换     time ⇌ date time ⇌ smalldatetime time ⇌ datetime tim...

2796
来自专栏从零开始的linux

mysql基础语法 表

#if语句,防止报错 mysql> drop database if exists `HA-test`; Query OK, 0 rows affected, ...

3265
来自专栏腾讯云TStack专栏

Zabbix 分区优化

目前 zabbix 的数据主要存储在 history 和 trends 的2个表中,随着时间的推移,这两个表变得非常大,性能会非常差,影响监控的使用。对 MyS...

1.2K0
来自专栏王翔的专栏

如何处理 MySQL错误码 1215:无法添加外键约束?

创建外键失败常见错误,以及处理办法。

2.2K0
来自专栏我的博客

触发器统计记录行数

a表保存记录,b表保存a表当中指定cid的总行数 CREATE TABLE `a` ( `id` int(11) unsigned NOT NULL AUT...

3077

扫码关注云+社区