[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