使用内部联接插入表时遇到问题

时间:2019-04-15 15:03:00

标签: sql-server

我试图在另一个表中插入从值中提取的平均值。 我可以计算平均值,但是在条件下将其插入表中时,会出现错误-见下文。

我很确定我应该使用更新功能,但是不确定如何使用内部联接实现更新

enter image description here

这是我正在使用的代码。

INSERT INTO TESTS (TEST_AVERAGE) 
SELECT AVG(STUDENT_SCORE )
FROM STUDENT_SCORES  
INNER JOIN TESTS
ON STUDENT_SCORES.TEST_ID = TESTS.TEST_ID AND TESTS.TEST_ID = 'TST100'

当我运行select语句时,我可以看到正确的值

enter image description here

“测试表”中已插入数据,但是“测试平均值”是唯一不希望输入的列,并且可以为空

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要将TEST_ID添加到VALUES列表和SELECT stmt

INSERT INTO TESTS (TEST_ID, TEST_AVERAGE) 
SELECT TESTS.TEST_ID, AVG(STUDENT_SCORE )
FROM STUDENT_SCORES  
INNER JOIN TESTS
ON STUDENT_SCORES.TEST_ID = TESTS.TEST_ID AND TESTS.TEST_ID = 'TST100'
GROUP BY TESTS.TEST_ID