SUM no select Union

Delphi

24/05/2005

Colegas..

Tenho um select Union, entre duas tabela idênticas, com três campos, que fazem um join com uma terceira tabela.. quero saber se tem como somar a quantidade caso o Insumo seja o mesmo .

Exemplo:

´select OS0200.C_QTD, OS0200.C_COD_INSUMO, OS100.C_DESC_INSUMO from ´+
´OS0200, IN0100 where OS0200.C_COD_INSUMO ´+
´= IN0100.C_COD_INSUMO and OS0200.C_COD_OS = ´´´+s_cod+´´´´+
´ Union select OS0300.C_QTD, OS0300.C_COD_INSUMO, IN0100.C_DESC_INSUMO from ´+
´OS0300, IN0100 where OS0300.C_COD_INSUMO ´+
´= IN0100.C_COD_INSUMO and OS0300.C_COD_OS = ´´´+s_cod+´´´´;

onde s_cod é a variável com o código da OS

o campo C_QTD desta Union (das duas tabelas) deveria somar e aparecer somente um registro sem duplicar.

Agradeço antecipadamente a a tenção de todos


Cabelo

Cabelo

Curtidas 0

Respostas

Kotho

Kotho

24/05/2005

Em Firebird, você terá que criar uma view com o UNION, e depois fazer o SELECT SUM da view... O filtro (WHERE) se deve fazer no SELECT e não na VIEW...


GOSTEI 0
Cabelo

Cabelo

24/05/2005

Colega..

O problema é o seguinte, este sistema é portável para diversos bancos diferentes, portanto não posso utilizar nem views e nem SP.

Será que não tem como fazer via SQL?


GOSTEI 0
Kotho

Kotho

24/05/2005

Via SQL não vai dar não... Se você tiver usando ClientDataSet, tem como criar uma tabela em memória para ser exportada pelo DataSetProvider e capturada por outro ClientDataSet... É um pouco trabalhoso, mas funciona legal... Se quizer, eu posso ajudar a desenvolver...


GOSTEI 0
Cabelo

Cabelo

24/05/2005

Gostaria de saber se dava via SQL, pq se não dá... Tem como fazer usando um vetor. Mas gostaria de fazê-lo via SQL.

Tem certeza que não tem como fazer via SQL? :cry:


GOSTEI 0
Cabelo

Cabelo

24/05/2005

sobe.. :(


GOSTEI 0
POSTAR