Problema com Select Sum As
Na minha tabela itens (id, nome, valor, qtde)
uso o select:
Funciona beleza, mas preciso agora somar o valor total
do campo VALOR_ITEM, tentei desta forma mas não
funcionou?
não funcionou, aí tentei assim:
Tbm não deu certo. Será que alguem pode
esclarecer esse problema com o select ?
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
Curtidas 0
Respostas
Rômulo Barros
12/05/2004
select
ID, NOME, VALOR, QTDE,
SUM(VALOR * QTDE) as VALOR_ITEM,
from itens
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
Comodelphi
12/05/2004
nesse caso vc tem que usar uma subquery na coluna:
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
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
Aroldo Zanela
12/05/2004
Colega,
É um total geral ou um total por item?
É um total geral ou um total por item?
GOSTEI 0
Eniorm
12/05/2004
[quote:368ff3c21a=´Aroldo Zanela´]Colega,
É 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:
É 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
Eniorm
12/05/2004
nesse caso vc tem que usar uma subquery na coluna:
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
Putz cara ainda não deu certo :(
GOSTEI 0
Paulo_amorim
12/05/2004
Olá
Eu testei isso que vc fez
e funcionou...
ele da erro ou traz algo nada ver?
Até+
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
Aroldo Zanela
12/05/2004
Colega,
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:
Retornado algo como:
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)
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
Eniorm
12/05/2004
[quote:2f415b1651=´Aroldo Zanela´]Colega,
Se você precisa do valor total em todas as linhas como uma coluna...
No caso, uma forma seria:
Retornado algo como:
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:
Muito obrigado mesmo :D
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