Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MaktubBruno

Somar valor a partir de campo de outra tabela

Recommended Posts

Salve galera!!!

Bom, é o seguinte:

Preciso somar o valor de um determinado campo após um filtro, porém este campo faz referencia a um código em outra tabela que contém no caso o valor a ser usado para somar.

 

Ex:

Na tabela Servico preencho (CodServ, Descricao, Valor)

Na tabela Ficha preencho (CodFicha, Descricao etc...)

Na tabela Lista preencho (CodLista, CodFicha, CodServ)

 

Vou filtrar a a tabela Lista por CodFicha, com o resultado preciso somar a partir do campo CodServ, ou seja, somar o 1 + 2 + 3 etc...

 

Estou utilizando Firebird 2.0 e IB Expert, Delphi 7 e Componentes: IBDatabase, IBTransaction (para ligar ao Banco), IBDataSet e DataSource para ligar a tabela.

 

Bom não sei se ficou claro mais se alguém puder me ajudar agradeço muito.

 

Desde já muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve galera!!!

Bom, é o seguinte:

Preciso somar o valor de um determinado campo após um filtro, porém este campo faz referencia a um código em outra tabela que contém no caso o valor a ser usado para somar.

 

Ex:

Na tabela Servico preencho (CodServ, Descricao, Valor)

Na tabela Ficha preencho (CodFicha, Descricao etc...)

Na tabela Lista preencho (CodLista, CodFicha, CodServ)

 

Vou filtrar a a tabela Lista por CodFicha, com o resultado preciso somar a partir do campo CodServ, ou seja, somar o 1 + 2 + 3 etc...

 

Estou utilizando Firebird 2.0 e IB Expert, Delphi 7 e Componentes: IBDatabase, IBTransaction (para ligar ao Banco), IBDataSet e DataSource para ligar a tabela.

 

Bom não sei se ficou claro mais se alguém puder me ajudar agradeço muito.

 

Desde já muito obrigado

 

Pelo que entendi, você quer totalizar os servicos feitos somando os valores referenciados na tabela de servicos

 

Se você for mostrar somente a soma pode usar assim

 

SELECT sum(Servico.valor) from Lista
inner join Servico on Servico.CodServ = Lista.CodServ
where Lista.CodFicha = :CodigoDaFichaDesejada

 

Se for retornar outros campos juntos coloque a clausula de agrupamento GROUP BY

SELECT Lista.CodFicha, Lista.CodServ, sum(Servico.valor) from Lista
inner join Servico on Servico.CodServ = Lista.CodServ
where Lista.CodFicha = :CodigoDaFichaDesejada
GROUP BY Lista.CodFicha, Lista.CodServ

/* lembre-se q na GROUP BY devem estar TODOS os campos que você não vai calcular, que nesse exemplo são os dois primeiros da select */

 

Abraço e boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.