Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在另一列中引用计算值_Mysql_Sql_Phpmyadmin - Fatal编程技术网

Mysql 在另一列中引用计算值

Mysql 在另一列中引用计算值,mysql,sql,phpmyadmin,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 tonv

我试图在另一个表的另一列中显示一个计算值。 有人能解释一下为什么这不起作用吗

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;

您的代码中有一些语法错误,但您的问题的答案是您使用
JOIN
更新进行了错误的结构化:我收到了错误#1111-组的无效使用function@Shoxxer哎呀<代码>总和
不应该在那里。请尝试更新的答案。谢谢,它正在工作,但是我想知道是否有一种方法可以使值在新的数据插入完成后立即自动显示在列上。现在,每次创建一行后,我都必须输入这个update语句。是否可以使其自动插入?也许是作为一个触发器?@Shoxxer,你的意思是在
tonvarden
中插入新行时更新
matningar
?是的,完全一样