Somar e subtrair dentro do mySql
24/04/2021
0
Realiso duas somas de valor agrupado, (SUM(desconto) AS desco) e (SUM(valorl) AS valor) apos as 2 somas, sendo uma que somas os desconto e a outra o valor do produto, depois tento subtrair o valor (valor)- (desco) AS divalor, porem retorna o erro #1054 - Coluna 'valor' desconhecida em 'field list'
[code=sql][/SELECT id_lancamento, id_funci, id_funcionario, valorl, desconto,
SUM(valorl) AS valor,
SUM(desconto) AS desco,
(valor)- (desco) AS divalor
FROM lancamento_rj, funcionario_rj
WHERE id_funci = id_funcionario
GROUP BY id_funci]
[code=sql][/SELECT id_lancamento, id_funci, id_funcionario, valorl, desconto,
SUM(valorl) AS valor,
SUM(desconto) AS desco,
(valor)- (desco) AS divalor
FROM lancamento_rj, funcionario_rj
WHERE id_funci = id_funcionario
GROUP BY id_funci]
Robson Carmo
Curtir tópico
+ 0
Responder
Posts
24/04/2021
Emerson Nascimento
as colunas valor e desco não existem; são virtuais.
repita o comando para ter o resultado esperado.
uma dica: utilize aliases para as tabelas e faça relacionamentos explícitos. da forma como você fez a leitura é difícil pra quem quer te ajudar.
não há lógica em apresentar (select) as colunas (valorl, desconto) que estão sendo agrupadas (sum).
outra coisa: aparentemente nenhum campo da tabela FR está sendo utilizado. porque a tabela está sendo referenciada?
se você quiser apresentar algum dado do funcionário, as colunas precisarão constar no group by.
repita o comando para ter o resultado esperado.
uma dica: utilize aliases para as tabelas e faça relacionamentos explícitos. da forma como você fez a leitura é difícil pra quem quer te ajudar.
SELECT LR.id_funci, SUM(LR.valorl) valor, SUM(LR.desconto) desco, SUM(LR.valorl) - SUM(LR.desconto) divalor FROM lancamento_rj LR INNER JOIN funcionario_rj FR ON FR.id_funcionario = LR.id_funci GROUP BY LR.id_funci
outra coisa: aparentemente nenhum campo da tabela FR está sendo utilizado. porque a tabela está sendo referenciada?
se você quiser apresentar algum dado do funcionário, as colunas precisarão constar no group by.
SELECT LR.id_funci, FR.nome, SUM(LR.valorl) valor, SUM(LR.desconto) desco, SUM(LR.valorl) - SUM(LR.desconto) divalor FROM lancamento_rj LR INNER JOIN funcionario_rj FR ON FR.id_funcionario = LR.id_funci GROUP BY LR.id_funci, FR.nome
Responder
Clique aqui para fazer login e interagir na Comunidade :)