【问题标题】:Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= ,子查询返回超过 1 个值。当子查询跟随 =, !=, <, <= , >, >= 时,这是不允许的,
【发布时间】:2022-11-02 22:07:34
【问题描述】:
DECLARE @Recaudacion as INT
DECLARE @Division as INT
SELECT @Recaudacion =  ( SELECT SUM(pelicula.PrecioEntrada) FROM pelicula  ) 
SELECT @Division = (SELECT count(*) FROM funcion  GROUP BY NombrePelicula HAVING COUNT(*)>1 )
SELECT (@Recaudacion / @Division) as Recaudacion, funcion.NombrePelicula FROM funcion 

我有这条消息子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。

我期待每个节目的平均价格

【问题讨论】:

  • 当您将错误消息转储到您最喜欢的搜索引擎时,about 9310 results 出了什么问题?你不明白他们呢?那错误呢,即明确的告诉你问题,你不明白吗?
  • 计数/分组/有can return more than one row
  • 您知道 SQL Server 2008 自 2019 年以来已完全停产,对吧?这意味着它还没有收到任何补丁——甚至没有关键的安全更新——好几年了。继续使用它是危险和不负责任的。升级到受支持的版本是这里的工作 #1。

标签: sql sql-server-2008


【解决方案1】:
SELECT count(*) FROM funcion GROUP BY NombrePelicula

将为每个NombrePelicula 返回count,因此它可以是多个值。

【讨论】:

  • 是的,但是我需要多个值,所以我该如何解决这个问题?有什么办法吗?
  • @MateGraviFiorino 请阅读how to MRE
  • @MateGraviFiorino 如果您需要多个值,则需要多个变量。 @Division 只是一个整数。您不能为其分配一整套值。
猜你喜欢
  • 2012-06-04
  • 2016-08-02
  • 2019-10-13
  • 1970-01-01
  • 2017-03-10
相关资源
最近更新 更多