Select * From tabela com Sum(). É possível?
Em uma rotina minha, eu preciso filtar um dado com a cláusula Where. até aí tudo bem. Junto eu presiso agregar os valores eu uma instrução Sum() e dividir pelo dolar do dia e fechar para não mais poder ser alterado. Como associar select * from tabela com sum()?
Paulo
Curtidas 0
Respostas
Okama
02/04/2003
Select Sum(campo) from tabela where <condição>
GOSTEI 0
Aroldo Zanela
02/04/2003
Em uma rotina minha, eu preciso filtar um dado com a cláusula Where. até aí tudo bem. Junto eu presiso agregar os valores eu uma instrução Sum() e dividir pelo dolar do dia e fechar para não mais poder ser alterado. Como associar select * from tabela com sum()?
Selecionar colunas e função de agregação ao mesmo tempo só usando a cláusula Group By. No entato, quando você especifica *, teria que colocar todas as colunas no group by e isso não tem sentido.
Neste caso, o ideal seria uma Stored Procedure para primeiro obter o total e depois selecionar os dados e já fazer os devidos tratamentos que você deseja.
Se o seu banco de dados não tiver suporte para SPs, então deverá fazer no mínimo duas Querys, uma para obter o total e outra para selecionar os dados.
Se é que entendi o seu problema.
GOSTEI 0
Andersonc
02/04/2003
Você pode criar o campo como um subselect:
select *, ((select sum(campox) from tabela2 where campochave1 = t1.campochave1) * Valor) as Totalx
from Tabela1 t1
Com este select vc selecina todos os campos da tabela1 e multiplica o sometório do campox de tabela 2 por um valor
ex:
tabela1 pode ser produto
tabela2 pode item
campochave1 pode ser codproduto.
select *, ((select sum(campox) from tabela2 where campochave1 = t1.campochave1) * Valor) as Totalx
from Tabela1 t1
Com este select vc selecina todos os campos da tabela1 e multiplica o sometório do campox de tabela 2 por um valor
ex:
tabela1 pode ser produto
tabela2 pode item
campochave1 pode ser codproduto.
GOSTEI 0
Andersonc
02/04/2003
Você pode criar o campo como um subselect:
select *, ((select sum(campox) from tabela2 where campochave1 = t1.campochave1) * Valor) as Totalx
from Tabela1 t1
Com este select vc selecina todos os campos da tabela1 e multiplica o sometório do campox de tabela 2 por um valor
ex:
tabela1 pode ser produto
tabela2 pode item
campochave1 pode ser codproduto.
select *, ((select sum(campox) from tabela2 where campochave1 = t1.campochave1) * Valor) as Totalx
from Tabela1 t1
Com este select vc selecina todos os campos da tabela1 e multiplica o sometório do campox de tabela 2 por um valor
ex:
tabela1 pode ser produto
tabela2 pode item
campochave1 pode ser codproduto.
GOSTEI 0
Aroldo Zanela
02/04/2003
Em uma rotina minha, eu preciso filtar um dado com a cláusula Where. até aí tudo bem. Junto eu presiso agregar os valores eu uma instrução Sum() e dividir pelo dolar do dia e fechar para não mais poder ser alterado. [b:676d2a1b90]Como associar select * from tabela com sum()?[/b:676d2a1b90]
Bem lembrado pelo colega o uso de subquery:
select *, ((select sum(valor) TOTAL from TABELA
where COLUNA_RELACIONAMENTO = T1.COLUNA_RELACIONAMENTO
))
from TABELA T1
where COLUNA=<CONDICAO>
GOSTEI 0