尝试使用这种语法时,我在MySql中出现错误#1241

时间:2019-04-26 19:37:15

标签: mysql sql oracle

我收到此错误

  

1241-操作数应包含1列

当我尝试选择这两个表和列时。

我试图从选择项中删除(),但这没用。

  SELECT (SELECT (SUM(preco_base),0)   FROM produtos) +
         (SELECT (SUM(salario_base),0) FROM salarios)
    FROM DUAL;

3 个答案:

答案 0 :(得分:0)

怎么样

select a.sum_pb + b.sum_sb
from (select sum(preco_base) sum_pb from produtos) a,
     (select sum(salario_base) sum_sb from salarios) b;

答案 1 :(得分:0)

sum()包含单个操作数sum(acol)而不是sum(col,0)

您可以尝试使用croos连接

select a.sum_preco_base + b.sum_salario_base 
from (
 SELECT SUM(preco_base) sum_preco_base
  FROM produtos 
) a 
CROSS JOIN (
  SELECT (SUM(salario_base) sum_salario_base
  FROM salarios
) b 

答案 2 :(得分:0)

尝试一下:

SELECT (COALESCE( (SELECT SUM(preco_base) FROM produtos), 0) +
        COALESCE( (SELECT SUM(salario_base) FROM salarios), 0)
       )

dual不是必需的,您想在子查询运行后COALESCE()