Incluir linha no final do resultado
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.
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
Curtidas 0
Respostas
Fellix
22/10/2007
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.
GOSTEI 0
Douglass
22/10/2007
Como você pode ver o ´Valor a Receber´ é apenas um rename.
Mas eu tentei fazer como você falou, a soma através do rename mas também não funcionou e continua travando.
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
GOSTEI 0
Douglass
22/10/2007
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
GOSTEI 0
Douglass
22/10/2007
COLEI ERRADO O ANTERIOR.. CERTO EH ESSE AQUII!!
NÃO TEM EDITAR NESSE FORUM??? :(
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??? :(
GOSTEI 0
Douglass
22/10/2007
Depois de pesquisar bastante consegui fazer assim:
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:
Aguardo resposta, obrigado.
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.
GOSTEI 0