我有具有编号范围的客户组(从客户编号到客户编号)。
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