mysql - 引用另一列中的计算值

标签 mysql sql phpmyadmin

我正在尝试创建一个计算值以显示在另一个表的另一列中。 有人可以解释一下为什么这不起作用

CREATE TABLE #Medition (ID int,AVG decimal(18,4))
INSERT INTO #Medition (ID, AVG) 
SELECT ID, SUM(125Hz + 250Hz + 500Hz + 750Hz + 1000Hz + 1500Hz + 2000Hz + 3000Hz + 4000Hz + 6000Hz + 8000Hz)/11 AS AVG FROM tonvarden 
UPDATE matningar  SET matningar.tonmedelvarde =
#Medition.AVG FROM matningar INNER JOIN #Medition ON matningar.ID =#Medition.ID
 DROP TABLE #Medition

我收到此错误

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO #Medition (ID, AVG) SELECT ID, SUM(125Hz + 250Hz + 500Hz + 750Hz + ' at line 2

最佳答案

无需创建临时表即可执行此操作。

UPDATE matningar a
join tonvarden b on a.ID = b.ID
set a.tonmedelvarde = (`125Hz` + `250Hz` + `500Hz` + `750Hz` + `1000Hz` + 
                          `1500Hz` + `2000Hz` + `3000Hz` + `4000Hz` + `6000Hz` + 
                          `8000Hz`)/11;

如果您希望在每次向 tonvarden 中插入新行时更新 matningar,那么您可以创建以下触发器:

create trigger update_matningar before insert on tonvarden
for each row 
update matningar 
set tonmedelvarde = 
    (new.`125Hz` + new.`250Hz` + new.`500Hz` + new.`750Hz` 
        + new.`1000Hz` + new.`1500Hz` + new.`2000Hz` 
        + new.`3000Hz` + new.`4000Hz` + new.`6000Hz` 
        + new.`8000Hz`)/11
where id = new.id;

关于mysql - 引用另一列中的计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24420300/

相关文章:

mysql - libmysqlclient_r.a 没有生成

sql - 从一个表 SQL 中输出多列?

java - 使用 java、DB2、spring 和 hibernate 连接来自两个不同库的两个表

php - 从 PHP 访问 MySql 数据库(不在本地主机上)

mysql - 构造多重选择连接 OOP 类

php - 如何从 MySql 数据库中检索图像?

sql - 连接 2 个表区分大小写的大小写

php - Apache 和 MySQL 正在运行,但 "http://localhost/phpmyadmin/"显示 "This webpage is not available"

mysql - 无法在 MySQL 数据库中创建列?

php - 如何在 Laravel 中使用 mysql concat 查询?