1
votes

J'ai l'erreur # 1241 dans MySql lorsque j'essaye cette syntaxe

Je reçois cette erreur

1241 - L'opérande doit contenir 1 colonne (s)

lorsque j'essaie de sélectionner ces deux tables et colonnes.

J'ai essayé de supprimer le () de la sélection, mais cela n'a pas fonctionné.

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


3 commentaires

SUM ne prend qu'un seul argument; peut-être que ce dont vous avez besoin est plus comme IFNULL (SUM (preco_base), 0)


Essayez ceci: SELECT (SELECT SUM (preco_base) FROM produtos) + (SELECT SUM (salario_base) FROM salaire) FROM DUAL;


Merci, ça marche maintenant.


3 Réponses :


0
votes

Que diriez-vous de

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;


0 commentaires

0
votes

sum () contenant un seul opérande sum (acol) pas sum (col, 0)

Vous pouvez essayer d'utiliser une jointure 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 commentaires

0
votes

Essayez ceci:

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

dual n'est pas nécessaire et vous voulez COALESCE () après la sous-requête a été exécutée.


0 commentaires