[firebase-br] Dúvidas com sub-select

Eduardo Pelizzari de Andrade eduardoandrade em persoft.com.br
Ter Maio 5 17:09:46 -03 2009


Pelo que estou entendendo você que a média ponderada de pagamento, mas o 
select que você me passou trata isso por registro, porque?

você não pode fazer assim:

select  sum(a.valor * (a.emissao - a.vencimento) ) / sum( a.valor)
from  FIN_REC_001 a

where
  (a.VENCTO between '2008-05-01' and '2008-05-30') and
  (a.PAGA = 'N') and (a.CODIGO = 4690)


Agora se o que você quer é uma coluna que venha seja feito linha a 
linha, ai será mais fácil fazer um store procedure.


Eduardo Pelizzari de Andrade
Persoft Softwares Aplicativos




João Carlos Rocha Júnior escreveu:
> Bom dia senhores,
>
> O que eu preciso é o seguinte:
>
> Eu tenho estes valores:
>
> Duplicata     Dt. Faturamento   Dt. Vecimento     Valor Duplicata
>     1A                  30/04                 30/05
> 100,00
>     1B                  30/04                 15/06
> 150,00
>
> Eu preciso subtrair a Dt. Vencimento da Dt. Faturamento para ter uma
> quantidade de dias:
>           30/05     -     30/04     =     30
>           15/06     -     30/04     =     46
>
> Multiplicar a quantidade de dias pelo Valor Duplicata:
>           30     *     100,00     =     3000,00
>           46     *     150,00     =     6900,00
>
>
> Até aqui eu consegui fazer assim:
>
> Select a.FATURA,a.NF,a.EMISSAO,a.VENCTO,a.VALOR,(a.VENCTO - a.EMISSAO) as
> DIAS,
>        (Select Sum(b.VALOR * (a.VENCTO - a.EMISSAO)) from FIN_REC_001 b
> where (b.FATURA = a.FATURA)) as SOMA
> from
>   FIN_REC_001 a
> where
>   (a.VENCTO between '2008-05-01' and '2008-05-30') and
>   (a.PAGA = 'N') and (a.CODIGO = 4690)
> group by
>   a.FATURA,a.NF,a.EMISSAO,a.VENCTO,a.VALOR
>
> Não tenho prática em fazer cálculos diretamento no banco, portanto acredito
> que haja uma forma melhor de se escrever esta instrução.
> Tem como na mesma instrução eu conseguir a soma (3000,00 + 6900,00) e
> dividir essa soma pela soma dos valores da duplicata (100,00 + 150,00)?
>
> 9900,00     /     250,00     =     39,6
>
> Obrigado doutores. Espero ter conseguido me explicar.
> ______________________________________________
> 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
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com 
> Version: 8.0.238 / Virus Database: 270.12.18/2098 - Release Date: 05/05/09 08:05:00
>
>   




Mais detalhes sobre a lista de discussão lista