Total do campo numa query criada em tempo de execuçao

Firebird

07/07/2005

Olá

Sabem me dizer como posso pegar o total de um campo criado em tempo de execuçao? Ela muda de nome, cfe os meses informados.
Eu terei que ter o seguinte:
sum(qtdade_2_04), sum(qtdade_3_04), etc. Ou seja, o total do campo que foi criado.
Não sei se dá para incluir na própria query ou tenho que fazer uma rotina para isto. Uso Delphi7 e ibx com firebird1.5. Segue abaixo um exemplo da sql:

Select C.codpro, C.Grupro, C.subpro, C.csepro,

(select SUM(A.QTDNSI)
from ESANSI A inner join ESANST B on B.NPCNST= A.NPCNSI
where EXTRACT( YEAR FROM B.DATNST) = 2004 AND EXTRACT( MONTH FROM B.DATNST )=2 AND A.codnsi=C.codpro AND B.TIPO=´VND´ AND B.dcanst is NULL AND B.FATNST=´F´) qtdade_2_04,

(select sum(A.totnsi-(A.totnsi*B.PDENST/100)-((A.totnsi-(A.totnsi*B.PDENST/100))*B.PODNST/100))
from ESANSI A inner join esanst B on B.NPCNST= A.NPCNSI
where EXTRACT( YEAR FROM B.DATNST) = 2004 AND EXTRACT( MONTH FROM B.DATNST )=2 AND A.codnsi=C.codpro AND B.TIPO=´VND´ AND B.dcanst is NULL AND B.FATNST=´F´) total_2_04,

(select SUM(A.QTDNSI)
from ESANSI A inner join ESANST B on B.NPCNST= A.NPCNSI
where EXTRACT( YEAR FROM B.DATNST) = 2004 AND EXTRACT( MONTH FROM B.DATNST )=3 AND A.codnsi=C.codpro AND B.TIPO=´VND´ AND B.dcanst is NULL AND B.FATNST=´F´) qtdade_3_04,

(select sum(A.totnsi-(A.totnsi*B.PDENST/100)-((A.totnsi-(A.totnsi*B.PDENST/100))*B.PODNST/100))
from ESANSI A inner join esanst B on B.NPCNST= A.NPCNSI
where EXTRACT( YEAR FROM B.DATNST) = 2004 AND EXTRACT( MONTH FROM B.DATNST )=3 AND A.codnsi=C.codpro AND B.TIPO=´VND´ AND B.dcanst is NULL AND B.FATNST=´F´) total_3_04

from esapro C
Where (C.Grupro*10000) + (C.subpro*100) + C.csepro between 10105 and 20501
Order by C.Grupro, C.subpro, C.csepro, C.codpro


[ ]´s


Ivonei

Ivonei

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

07/07/2005

Ao criar sua SQL em tempo de execução vc pode atribuir um apelido para o campo de soma que facilitará o trabalho, ex:
SELECT SUM(nome_campo) AS TotalCampo FROM tabela



GOSTEI 0
Ivonei

Ivonei

07/07/2005

Ao criar sua SQL em tempo de execução vc pode atribuir um apelido para o campo de soma que facilitará o trabalho, ex:
SELECT SUM(nome_campo) AS TotalCampo FROM tabela


Isto eu já fiz. Veja no código acima. O resultado seria +ou- assim:

[b:03605ddeea]CODPRO...qtdade_2_04...total_2_04...qtdade_3_04...total_3_04[/b:03605ddeea]
1001..........................55......1.024,00................ 44.............310,00
1005........................102.........880,00.................30.............220,00
2050.....................[u:03605ddeea]...70...[/u:03605ddeea]........301,00..............[u:03605ddeea]...26.....[/u:03605ddeea]........456,00
[b:03605ddeea][u:03605ddeea]TOTAL...................227....................................100[/u:03605ddeea][/b:03605ddeea]

É do [b:03605ddeea]TOTAL[/b:03605ddeea] acima que estou precisando. Por favor, alguma idéia de como posso fazer?


GOSTEI 0
POSTAR