JWoord Postado Novembro 7, 2014 Denunciar Share Postado Novembro 7, 2014 Bom dia. É possível usar uma soma (valorTotal) de um campo do Select dentro do mesmo Select? Tentei isso e não funciona: SELECT nome, SUM(valor) as valorTotal, qtd, valorTotal/qtd AS valorUnitario FROM tabela1 Não gostaria de utilizer: SELECT nome, SUM(valor) as valorTotal, qtd, SUM(valor)/qtd AS valorUnitario FROM tabela1 Ou seja, não gostaria de utilizer SUM(valor) 2 vezes. Obrigado Jairo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Novembro 7, 2014 Denunciar Share Postado Novembro 7, 2014 Supondo que o campo nome possua uma chave unica ou seja seu campo primary key,então faça assim:SELECT nome, valorTotal, qtd, valortotal/qtd AS valorUnitario FROM tabela1 t1 inner join (select nome, sum(valor) AS valorTotal FROM tabela1 group by nome) t2 ON t2.nome = t1.nome Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JWoord Postado Novembro 7, 2014 Autor Denunciar Share Postado Novembro 7, 2014 Ok Denis, entendi. Então só usando JOIN(Select...) Isso não diminui o desenpenho do Select. Ou seja, ele não ficaria mais lento do que usar (se fosse possível, claro) do jeito que eu estava tentando? Muito obrigado pela ajuda. Jairo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Novembro 9, 2014 Denunciar Share Postado Novembro 9, 2014 Oi Jairo,Então só usando JOIN(Select...)Você precisa do join, pois a solução de seu problema precisa que ele obtenha um total para que possa gerar cálculos para cada linha.Isso não diminui o desenpenho do Select. Ou seja, ele não ficaria mais lento do que usar (se fosse possível, claro) do jeito que eu estava tentando?O jeito que você estava tentando não dá certo. Não há como calcular sem saber o total.O join só ficará mais lento se você não usar índices.Muito obrigado pela ajuda.Não por isso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
JWoord
Bom dia.
É possível usar uma soma (valorTotal) de um campo do Select dentro do mesmo Select?
Tentei isso e não funciona:
SELECT nome, SUM(valor) as valorTotal, qtd, valorTotal/qtd AS valorUnitario FROM tabela1
Não gostaria de utilizer:
SELECT nome, SUM(valor) as valorTotal, qtd, SUM(valor)/qtd AS valorUnitario FROM tabela1
Ou seja, não gostaria de utilizer SUM(valor) 2 vezes.
Obrigado
Jairo
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.