Total do campo numa query criada em tempo de execuçao
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:
[ ]´s
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
Curtidas 0
Respostas
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
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