mysql - "Only one expression can be specified in the select list when the subquery is not introduced with EXISTS"错误

标签 mysql sql


我正在尝试使以下查询正常工作:

我写了这个存储过程:

IF (@Mode='CurrentRootList') 
BEGIN
SELECT ROW_NUMBER() OVER
  (
        ORDER BY emp1.EmployeeName ASC
  )AS RowNumber 
  ,emp1.empid 
  ,emp1.EmployeeName
  ,(SELECT * FROM [Mobile_Locations] mloc where emp1.MobileID=mloc.MobileID AND mloc.LocationTime = DATEDIFF(MINUTE, mloc.LocationTime , CURRENT_TIMESTAMP)) as LocationTime
  ,emp1.ArrivalTime
  ,emp1.DeviceStatus      
 INTO #CurrentDateRootList
  FROM [EMP_Locations] emp1 join [Root] root1 ON emp1.EmployeeName = root1.EmployeeName  where (CURRENT_TIMESTAMP BETWEEN root1.StartDate AND root1.EndDate)


  SELECT @RecordCount = COUNT(*)
  FROM #CurrentDateRootList

  SELECT * FROM #CurrentDateRootList
  WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1

  DROP TABLE #CurrentDateRootList
END

如何解决这个错误。 请帮助我。

最佳答案

填充 LocationTime 的子查询可能返回不止一行。您应该为该子查询添加 LIMIT 1。

编辑:并确保子查询只返回一列(注意 * ..)。

关于mysql - "Only one expression can be specified in the select list when the subquery is not introduced with EXISTS"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27543531/

相关文章:

mysql - 获取where/and子句mysql/sql中某列的最后一个id

java - 安卓登录: app crashes when entries are invalid?

sql - 为什么我的 ActiveRecord order 方法拒绝了解来自 select 方法的派生列?

mysql - WHERE 子句或 ON 子句中的 INNER JOIN 条件?

mysql - 反对不归还分数

mysql - 选择整个表中两列之间的平均值

sql - 设计带有类型的组和带有类型的项目,其中项目类型与组类型相关

sql - SQL-Server 2005 的 Oracle 等效 ROWNUM?

MySQL 错误代码 : 1264. 第 1 行 'columnname' 超出范围值

mysql - SQL 整数类型