Fórum Problema com Select Sum As #231827
12/05/2004
0
uso o select:
select ID, NOME, VALOR, QTDE, (VALOR * QTDE) AS VALOR_ITEM from itens
Funciona beleza, mas preciso agora somar o valor total
do campo VALOR_ITEM, tentei desta forma mas não
funcionou?
select ID, NOME, VALOR, QTDE, (VALOR * QTDE) as VALOR_ITEM, sum(VALOR_ITEM) as VALOR_TOTAL from itens
não funcionou, aí tentei assim:
select ID, NOME, VALOR, QTDE, (VALOR * QTDE) as VALOR_ITEM, sum(VALOR * QTDE) as VALOR_TOTAL from itens
Tbm não deu certo. Será que alguem pode
esclarecer esse problema com o select ?
Eniorm
Curtir tópico
+ 0Posts
12/05/2004
Rômulo Barros
ID, NOME, VALOR, QTDE,
SUM(VALOR * QTDE) as VALOR_ITEM,
from itens
SELECT A.SUM(SELECT (VALOR * QTDE)AS A FROM ITENS GROUP BY ID)
Gostei + 0
12/05/2004
Comodelphi
SELECT
A.ID, A.NOME, A.VALOR, A.QTDE,
(A.VALOR * A.QTDE) AS A.VALOR_ITEM,
(SELECT SUM(B.VALOR) * SUM(B.QTDE) WHERE B.ID = A.ID) AS VALOR_TOTAL
from itens A
Gostei + 0
12/05/2004
Aroldo Zanela
É um total geral ou um total por item?
Gostei + 0
13/05/2004
Eniorm
É um total geral ou um total por item?[/quote:368ff3c21a]
è um total geral, de todos os itens nessa tabela.
Vou tentar os meios acima, qualquer coisa eu
falo sobre os resultados.
Abradeço a todos, galera. :D :wink:
Gostei + 0
13/05/2004
Eniorm
Putz cara ainda não deu certo :(
Gostei + 0
13/05/2004
Paulo_amorim
Eu testei isso que vc fez
select ID, NOME, VALOR, QTDE, (VALOR * QTDE) as VALOR_ITEM, sum(VALOR * QTDE) as VALOR_TOTAL from itens
e funcionou...
ele da erro ou traz algo nada ver?
Até+
Gostei + 0
13/05/2004
Aroldo Zanela
Se você precisa do valor total em todas as linhas como uma coluna, então uma solução RUIM seria o uso de subquery, pois tem um custo elevado para o processador em termos de utilização de recursos.
No caso, uma forma seria:
select ses_data, ace_motorista, ace_vlr_total, (select sum(ace_vlr_total) from acertos where ses_data = ´01/02/2004´) as total from acertos where ses_data = ´01/02/2004´
Retornado algo como:
ses_data ace_motorista ace_vlr_total total ---------- ------------- ----------------- --------- 2004-01-02 45 11392.09 369745.54 2004-01-02 57 6063.01 369745.54 2004-01-02 73 4892.20 369745.54 2004-01-02 74 8122.43 369745.54 2004-01-02 95 5416.64 369745.54
Se não precisar do valor total em cada linha, então a melhor solução é fazer uma consulta para recuperar o valor total e outra para recuperar as linhas. (duas etapas)
Gostei + 0
13/05/2004
Eniorm
Se você precisa do valor total em todas as linhas como uma coluna...
No caso, uma forma seria:
select ses_data, ace_motorista, ace_vlr_total, (select sum(ace_vlr_total) from acertos where ses_data = ´01/02/2004´) as total from acertos where ses_data = ´01/02/2004´
Retornado algo como:
ses_data ace_motorista ace_vlr_total total ---------- ------------- ----------------- --------- 2004-01-02 45 11392.09 369745.54 2004-01-02 57 6063.01 369745.54 2004-01-02 73 4892.20 369745.54 2004-01-02 74 8122.43 369745.54 2004-01-02 95 5416.64 369745.54
Se não precisar do valor total em cada linha, então a melhor solução é fazer uma consulta para recuperar o valor total e outra para recuperar as linhas. (duas etapas)[/quote:2f415b1651]
Obrigado Aroldo, a sua dica ajudou muitíssimo, eu consegui,
veja como eu usei:
select id, nome, valor, quant, (valor * quant) as valor_item, (select sum(valor * quant) from itens) as valor_total from itens
Muito obrigado mesmo :D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)