GARANTIR DESCONTO

Fórum Extrair conteudo de outro campo dentro de um min SQL #273757

23/03/2005

0

pessoal estou com sguinte problema:
eu precisava dentro group extrair o conteudo do campo con_contrato do min(dat_vencimento), estou usando o firebird.
Agradeco desde ja qualquer ajuda.

select cl.cod_cliente,cl.cli_cpf,cl.end_cidade,cl.cli_nome,cn.cod_empresa,
count(*) as qtd_parcelas,
min(dat_retorno) as retorno,min(cast(dat_vencimento as date)) as vencimento,(current_date-min(cast(dat_vencimento as date))) as faixa_atrazo,min(cast(dat_entrada as date)) as dat_entrada,
(current_date-min(cast(dat_entrada as date))) as dias,min(bol_datvencimento) as dat_boleto,
sum(vlr_principal) as tot_principal,sum(vlr_parcela) as tot_parcela
from contrato cn left outer join cliente cl on cn.cod_cliente=cl.cod_cliente
group by 5,4,3,2,1


Ronaldomr

Ronaldomr

Responder

Posts

23/03/2005

Emerson Nascimento

select cl.cod_cliente,cl.cli_cpf,cl.end_cidade,cl.cli_nome,cn.cod_empresa,
       count(*) as qtd_parcelas,
       max(cn2.con_contrato) con_contrato,  // aki é o retorno do campo
       min(cn.dat_retorno) as retorno,
       min(cast(cn.dat_vencimento as date)) as vencimento,
      (current_date-min(cast(cn.dat_vencimento as date))) as faixa_atrazo,
       min(cast(cn.dat_entrada as date)) as dat_entrada,
      (current_date-min(cast(cn.dat_entrada as date))) as dias,
       min(cn.bol_datvencimento) as dat_boleto, 
       sum(cn.vlr_principal) as tot_principal,
       sum(cn.vlr_parcela) as tot_parcela 
from contrato cn
left outer join cliente cl on cn.cod_cliente=cl.cod_cliente
left join contrato cn2 on (cn2.cod_cliente=cn.cod_cliente and cn2.dat_vencimento=min(cn.dat_vencimento))
group by 5,4,3,2,1



Responder

Gostei + 0

24/03/2005

Ronaldomr

deu erro.

Invalid aggregate reference.


Responder

Gostei + 0

24/03/2005

Emerson Nascimento

e assim?

select cl.cod_cliente,cl.cli_cpf,cl.end_cidade,cl.cli_nome,cn.cod_empresa, 
       count(*) as qtd_parcelas, 
       min(cn.dat_retorno) as retorno, 
       min(cast(cn.dat_vencimento as date)) as vencimento, 
      (current_date-min(cast(cn.dat_vencimento as date))) as faixa_atrazo, 
       min(cast(cn.dat_entrada as date)) as dat_entrada, 
      (current_date-min(cast(cn.dat_entrada as date))) as dias, 
       min(cn.bol_datvencimento) as dat_boleto, 
       sum(cn.vlr_principal) as tot_principal, 
       sum(cn.vlr_parcela) as tot_parcela,
      (select max(cn2.con_contrato)
       from contrato cn2
       where cn2.cod_cliente=cl.cod_cliente
         and cn2.cod_empresa=cn.cod_empresa
         and cn2.dat_vencimento=min(cn.dat_vencimento)) con_contrato  // retorno do campo 
from contrato cn 
left outer join cliente cl on cn.cod_cliente=cl.cod_cliente 
group by 5,4,3,2,1



Responder

Gostei + 0

24/03/2005

Ronaldomr

valeu emerson deu certo.
valeu mesmo.


Responder

Gostei + 0

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

Aceitar