Mysql 错误 1241 (21000):操作数应包含 1 列



我有具有编号范围的客户组(从客户编号到客户编号)。

select g.id,
(select count(*), sum(sales)
FROM transactions t1 
where t1.customernumber between g.from_customernumber and g.to_customernumber)
from customer_groups g

选择此选项时,我收到此错误

ERROR 1241 (21000): Operand should contain 1 column(s)

我该怎么做才能解决这个问题?我已经阅读了一些关于此的线程,但我没有找到解决方案。

此致敬意!

MySQL期望从您的子查询中获得单个列,即括号中的SELECT只能选择单个列。

在您的示例中,您可以使用两个子查询,一个返回计数,另一个返回总和,但您也可以将查询重写为:

SELECT g.id, COUNT(t1.customernumber), SUM(sales)
FROM
  customer_groups g LEFT JOIN transactions t1
  ON t1.customernumber between g.from_customernumber and g.to_customernumber

相关内容

  • 没有找到相关文章

最新更新