[firebase-br] Ajuda com select ...

eduardo eduardo em icontroller.com.br
Sex Jul 1 19:01:03 -03 2005


Oi Magnun

SELECT
( MAX(CAMPO1) - MIN(CAMPO1) ) /
(
     SUM(CAMPO2) -
    (SELECT FIRST 1 CAMPO2 FROM TAB1
     ORDER BY CAMPO_QUE_DETERMINA_O_ULTIMO DESC
    )
)
  AS RESULTADO
FROM TAB1

O problema aqui é conseguir prever se

(sum(CAMPO2) - last(CAMPO2) não vai dar ZERO o que resultaria em erro. 
Se houver esta possibilidade é melhor escrever uma SP para ter mais 
domínio sobre a situação.

Outra coisa são os tipos. Se CAMPO1 e CAMPO2 forem INTEGER, você vai ter 
que multiplicar dividendo ou divisor por um numero com casa decimais 
para não ter um resulatdo INTEIRO (Tipo * 1.00)

[]s Eduardo





> Tenho uma tabela TAB1.
> 
> CAMPO1----CAMPO2
> 1000------600
> 2200------1350
> 4900------900
> 
> Preciso selecionar o (maior campo1 - o menor campo1) dividido por (soma 
> do campo2 - o ultimo campo2).
> Só pra acrescentar, o campo1 sempre terá um valor ascendente e o campo 2 
> aleatório. O valor que sera
> subtraído da soma do campo 2 sempre estará no registro do maior campo1. 
> No exemplo teria que ser
> (4900 - 1000) / (2850 - 900)
> 
> Se existisse uma funcao LAST seria algo como:
> select (max(CAMPO1) - min(CAMPO1)) / (sum(CAMPO2) - last(CAMPO2)as total
> from TAB1
> 
> valeu ...
> 
> _________________________________________________________________
> MSN Busca: fácil, rápido, direto ao ponto.  http://search.msn.com.br
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista