Fórum Incluir linha no final do resultado #58993

22/10/2007

0

Ola pessoal estou tentando adcionar uma linha no final do resultado deste comando sql(obs: estou usando o ibexpress com o bd firebird versão 1.5):

select ger.NM_EMPR as ´Empresa´,recr.CD_TIT as ´Cód. Cliente´,tit.NM_TIT as ´Nome do Cliente´,
sum(recr.VL_PARCELA + recr.VL_JUROS + recr.VL_DSCTO + recr.VL_DESPESA) as ´Valor a Receber´
from TAB_GER ger
inner join TAB_RECR recr on ger.CD_EMPRESA = recr.CD_EMPRESA and ger.CD_EMPRESA = recr.CD_FILIAL
inner join TAB_TIT tit on tit.CD_TIT = recr.CD_TIT
group by ger.NM_EMPR,recr.CD_TIT,tit.NM_TIT
union
select cast(ger.NM_EMPR as varchar(50)),
cast(recr.CD_TIT as char(6)),
cast(tit.NM_TIT as varchar(50)),
cast(sum(recr.VL_PARCELA + recr.VL_JUROS + recr.VL_DSCTO + recr.VL_DESPESA) as Numeric(10,2))
from TAB_GER ger,TAB_RECR recr,TAB_TIT tit group by ger.NM_EMPR,recr.CD_TIT,tit.NM_TIT

Quero que fica mais ou menos assim:
Ex.: Empresa Cod.Cliente Nome Cliente Vlr.Recebido
EMPRESA1 000001 JOSE DA SILVA 100,00
EMPRESA1 000002 JOSE NOGUEIRA 100,00
...... ..... ..... ....
EMPRESA1 TOTAL RECEBIDO 200,00


E sempre que tento rodar meu ibex acabda travando.. gostaria de saber se tem algo errado.


Douglass

Douglass

Responder

Posts

22/10/2007

Fellix

você pode usar o SELECT SUM(vlrecebido) no final , que vai fazer a soma de todos os valores do campo e retornar o valor para você no select, no seu caso seria necessário o uso de + um select, faça uns testes ai e veja como ele se adapta melhor.


Responder

Gostei + 0

22/10/2007

Douglass

Como você pode ver o ´Valor a Receber´ é apenas um rename.

sum(recr.VL_PARCELA + recr.VL_JUROS + recr.VL_DSCTO + recr.VL_DESPESA) as ´Valor a Receber´


Mas eu tentei fazer como você falou, a soma através do rename mas também não funcionou e continua travando.

select ger.NM_EMPR as ´Empresa´,recr.CD_TIT as ´Cód. Cliente´,tit.NM_TIT as ´Nome do Cliente´, sum(recr.VL_PARCELA + recr.VL_JUROS + recr.VL_DSCTO + recr.VL_DESPESA) as ´Valor a Receber´ from TAB_GER ger inner join TAB_RECR recr on ger.CD_EMPRESA = recr.CD_EMPRESA inner join TAB_TIT tit on tit.CD_TIT = recr.CD_TIT group by ger.NM_EMPR,recr.CD_TIT,tit.NM_TIT union select cast(ger.NM_EMPR as varchar(50)), cast(recr.CD_TIT as char(6)), cast(tit.NM_TIT as varchar(50)), cast(sum(´Valor a Receber1) as numeric (11,2)) from TAB_GER ger,TAB_RECR recr,TAB_TIT tit group by ger.NM_EMPR,recr.CD_TIT,tit.NM_TIT



Responder

Gostei + 0

22/10/2007

Douglass

Tentei de outro jeito mas continua travando... :evil:
select ger.NM_EMPR as ´Empresa´,recr.CD_TIT as ´Cód. Cliente´,tit.NM_TIT as ´Nome do Cliente´, sum(recr.VL_PARCELA + recr.VL_JUROS + recr.VL_DSCTO + recr.VL_DESPESA) as ´Valor a Receber´ from TAB_GER ger inner join TAB_RECR recr on ger.CD_EMPRESA = recr.CD_EMPRESA inner join TAB_TIT tit on tit.CD_TIT = recr.CD_TIT group by ger.NM_EMPR,recr.CD_TIT,tit.NM_TIT union select cast(ger.NM_EMPR as varchar(50)), cast(recr.CD_TIT as char(6)), cast(tit.NM_TIT as varchar(50)), cast(sum(´Valor a Receber1) as numeric (11,2)) from TAB_GER ger,TAB_RECR recr,TAB_TIT tit group by ger.NM_EMPR,recr.CD_TIT,tit.NM_TIT



Responder

Gostei + 0

22/10/2007

Douglass

COLEI ERRADO O ANTERIOR.. CERTO EH ESSE AQUII!!

select ger.NM_EMPR as ´Empresa´,recr.CD_TIT as ´Cód. Cliente´,tit.NM_TIT as ´Nome do Cliente´, sum(recr.VL_PARCELA + recr.VL_JUROS + recr.VL_DSCTO + recr.VL_DESPESA) as ´Valor a Receber´ from TAB_GER ger inner join TAB_RECR recr on ger.CD_EMPRESA = recr.CD_EMPRESA inner join TAB_TIT tit on tit.CD_TIT = recr.CD_TIT group by ger.NM_EMPR,recr.CD_TIT,tit.NM_TIT union select cast(ger.NM_EMPR as varchar(50)), cast(recr.CD_TIT as char(6)), cast(tit.NM_TIT as varchar(50)), (SELECT sum(recr.VL_PARCELA + recr.VL_JUROS + recr.VL_DSCTO + recr.VL_DESPESA) from tab_recr recr_ from TAB_GER ger,TAB_RECR recr,TAB_TIT tit group by ger.NM_EMPR,recr.CD_TIT,tit.NM_TIT


NÃO TEM EDITAR NESSE FORUM??? :(


Responder

Gostei + 0

23/10/2007

Douglass

Depois de pesquisar bastante consegui fazer assim:

select rua.CD_UF as ´UF´,cast (DS_UF as varchar(20)) as ´Unidade Federativa´,rua.DS_CIDADE as ´Cidade´,count(rua.CD_CEP) as ´Qt. de CEPs´ from TAB_RUA rua inner join TAB_UF uf on rua.CD_UF = uf.CD_UF group by uf.DS_UF,DS_CIDADE,uf.CD_UF,rua.CD_UF union select uf.CD_UF,uf.DS_UF,cast (DS_CIDADE as varchar(60)),count(cast(CD_CEP as varchar(8))) from TAB_UF uf inner join TAB_RUA rua on uf.CD_UF = rua.CD_UF group by uf.DS_UF,DS_CIDADE,uf.CD_UF,rua.CD_UF union select uf.CD_UF,cast (´Total´ as varchar(20)),cast (´´ as varchar(60)),(select count(CD_CEP) from TAB_rua rua,tab_uf uf where uf.CD_UF = rua.CD_UF) from TAB_UF uf inner join TAB_RUA rua on uf.CD_UF = rua.CD_UF group by uf.DS_UF,DS_CIDADE,uf.CD_UF,rua.CD_UF order by 4 desc


Mas ainda não é o que eu preciso pois ele nao orderna o count(CD_CEP) por estado(CD_UF)..

Queria saber como fazer uma subquery que exibisse o mesmo resultado que essa query:
select count(CD_CEP) from TAB_rua rua,tab_uf uf where uf.CD_UF = rua.CD_UF group by rua.cd_uf


Aguardo resposta, obrigado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar