更新SQL属性

时间:2013-05-17 13:33:34

标签: sql oracle

我正在尝试更新Oracle表格中的列,以便每个Goals的{​​{1}}列从播放器表格中的Game获得平均目标,但我会继续获取以下错误消息:

  

“错误:ORA-01427:单行子查询返回多行”

我已经测试了查询,它返回的行数与goal_scored以及正确的结果一样多。

这是我的代码:

Games

如果我跳过UPDATE GEN SET Goals = (Select AVG(goal_scored) FROM Player, Gen, Game WHERE Game.Name=Gen.Gameid AND Player.Gameid=Game.Name GROUP BY Player.Gamename); 我没有收到错误,但所有GROUP BY都获得相同的平均分数。

1 个答案:

答案 0 :(得分:2)

在子选择中跳过Gen(但将其保留在where子句中):

UPDATE GEN
    SET Goals = (Select AVG(goal_scored) FROM Player, Game
    WHERE Game.Name=Gen.Gameid AND Player.Gameid=Game.Name);

这解决了你的语法错误,但我觉得这不是你想要的。 请参阅Ed Gibbs的问题评论。