У меня ошибка # 1241 в MySql, когда я пытаюсь этот синтаксис - PullRequest
1 голос
/ 26 апреля 2019

Я получаю эту ошибку

1241 - Операнд должен содержать 1 столбец (ы)

, когда я пытаюсь выбрать эти две таблицы и столбцы.

Я пытался удалить () из выбора, но это не сработало.

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

Ответы [ 3 ]

0 голосов
/ 26 апреля 2019

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 
0 голосов
/ 26 апреля 2019

Попробуйте это:

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

dual не требуется, и вы хотите COALESCE() после выполнения подзапроса.

0 голосов
/ 26 апреля 2019

Как насчет

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...