[firebase-br] RES: Duvida select from select...

Marcos Weimer marcosweimer em gmail.com
Qui Jan 10 16:19:48 -03 2013


EXPRESSION CTE.... nunca achei que isso seria possivel....

segue como ficou...

with recursive x
as ( select fp.dias_atraso, f.saldo, fp.parcela, fp.faturas_receber_id,
fp.data_vencimento
  from faturas_receber_parcelas fp
    inner join faturas_receber f on f.faturas_receber_id =
fp.faturas_receber_id
  where f.parceiro = :parceiro)

select
  avg(x.dias_atraso) as Dias_MediaAtraso, --Dias Media Atraso
 (select coalesce(max(x.dias_atraso),0) -- Maior Atraso Faturas já
liquidadas
   from x
   where saldo > 0
   and ((select count(*)
      from faturas_receber_recebidas fr
        where fr.faturas_receber_id = x.faturas_receber_id
        and fr.parcela = x.parcela
        and fr.id_faturas_receber_reneg is not null) = 0)
   ) as Dias_MaiorAtraso_Liq
from x

vivendo e aprendendo!

Obrigado a todos que ajudaram!

-=Ma®©oS=-
Marcos R. Weimer
Delphi / C# / ASP.NET / WebServices / Firebird



Em 10 de janeiro de 2013 16:01, Tecnobyte Informática <
temp2 em tecnobyte.com.br> escreveu:

> Pelo que parece você conseguirá resolver isto usando COMMON TABLES
> EXPRESSION (CTE). Funciona como se fosse uma "view" virtual, ou seja, você
> dá um nome para um comando SELECT e depois executa SELECT sobre este SELECT
> que foi nomeado.
>
> Pesquise por "Firebird CTE".
>
> Atenciosamente.
>
> Daniel P. Guimarães
> Tecnobyte Informática
> www.tecnobyte.com.br
>
> -----Mensagem Original----- From: Marcos Weimer
> Sent: Thursday, January 10, 2013 1:54 PM
> To: Carlos H. Cantu ; FireBase
> Subject: Re: [firebase-br] RES: Duvida select from select...
>
>
> Cantu, vi sobre o
> Derived tables (http://www.firebirdsql.org/**refdocs/langrefupd21-select.*
> *html <http://www.firebirdsql.org/refdocs/langrefupd21-select.html>)
>
> e não obtive sucesso, acho que é impossível fazer oque estou querendo, veja
> o select...
>
>
> select
>  avg(x.dias_atraso) as Dias_MediaAtraso,
>  coalesce(max(x.dias_atraso),0) as Dias_MaiorAtraso_Liq,
>  *(select sum(saldo) from x where x.saldo > 0)* --aqui quero efetuar um
>
> sub select na tabela X que é uma tabela derivada. (derived table)
> from
> (select fp.dias_atraso, f.saldo
>  from faturas_receber_parcelas fp
>    inner join faturas_receber f on f.faturas_receber_id =
> fp.faturas_receber_id
>  where f.parceiro = :parceiro) x(dias_atraso, saldo)
>
>
> Acho que oque estou querendo fazer é meio "impossível" (ainda não
> implementado).
>
>
>
> -=Ma®©oS=-
> Marcos R. Weimer
> Delphi / C# / ASP.NET / WebServices / Firebird
>
>
>
> Em 10 de janeiro de 2013 15:38, Carlos H. Cantu
> <listas em warmboot.com.br>**escreveu:
>
>  Você terá que escrever "X" como uma DERIVED TABLES, pra conseguir
>> referenciar ela em um subselect.
>>
>> []s
>> Carlos H. Cantu
>> www.FireBase.com.br - www.firebirdnews.org
>> www.warmboot.com.br - blog.firebase.com.br
>>
>> MW> Aqui uso a 2.5.2.26539
>>
>> MW> Acho que vc não está entendendo o meu select, me refiro ao subselect,
>> MW> observe ele e veja se consegue algo do genero, eu acho que não existe
>> MW> suporte para isso.
>>
>> MW> -=Ma®©oS=-
>> MW> Marcos R. Weimer
>> MW> Delphi / C# / ASP.NET / WebServices / Firebird
>>
>>
>>
>
> ______________________________**________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/**artigo.php?id=1107<http://www.firebase.com.br/fb/artigo.php?id=1107>
> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>



Mais detalhes sobre a lista de discussão lista