WPetroti

Dê uma olhada nas funcoes LEAD e LAG acredito que é justamente o que vc
está procurando...

SELECT last_name, hire_date,
   LEAD(hire_date, 1) OVER (ORDER BY hire_date) AS "NextHired"
   FROM employees WHERE department_id = 30;

LAST_NAME                 HIRE_DATE NextHired
------------------------- --------- ---------
Raphaely                  07-DEC-94 18-MAY-95
Khoo                      18-MAY-95 24-JUL-97
Tobias                    24-JUL-97 24-DEC-97
Baida                     24-DEC-97 15-NOV-98
Himuro                    15-NOV-98 10-AUG-99
Colmenares                10-AUG-99


SELECT last_name, hire_date, salary,
   LAG(salary, 1, 0) OVER (ORDER BY hire_date) AS prev_sal
   FROM employees
   WHERE job_id = 'PU_CLERK';
 
LAST_NAME                 HIRE_DATE     SALARY   PREV_SAL
------------------------- --------- ---------- ----------
Khoo                      18-MAY-95       3100          0
Tobias                    24-JUL-97       2800       3100
Baida                     24-DEC-97       2900       2800
Himuro                    15-NOV-98       2600       2900
Colmenares                10-AUG-99       2500       2600

Clayton Bonelli escreveu:
> nao entendi a segunda regra, mas para a primeira, conseguir o
> somatorio eh facil uma vez que voce pode usar as funcoes analiticas
> OVER. Segue abaixo um exemplo de uma tabela com dois campos (codigo e
> valor), e depois um select mostrando cada linha da tabela e uma coluna
> com o somatorio (linha a linha) do campo "valor"
>
> create table tblteste
> (
>   codigo integer,
>   valor number
> );
>
> insert into tblteste values(1,100);
> insert into tblteste values(2,110);
> insert into tblteste values(3,120);
> insert into tblteste values(4,130);
> insert into tblteste values(5,140);
> insert into tblteste values(6,150);
> insert into tblteste values(7,160);
> insert into tblteste values(8,170);
> insert into tblteste values(9,180);
> insert into tblteste values(10,190);
> insert into tblteste values(11,200);
> insert into tblteste values(12,210);
> commit;
>
> select codigo, valor, sum(valor) over (order by rownum) soma
> from tblteste;
>
>   ----- Original Message -----
>   From: Walquencir Pedroti
>   To: oracle_br@yahoogrupos.com.br
>   Sent: Wednesday, May 31, 2006 3:57 PM
>   Subject: [oracle_br] Lógica SQL
>
>
>   Pessoal não sei aonde estava pendendo a formatação.
>   Estou enviando novamente sem formatação.
>
>   Enviada em: quarta-feira, 31 de maio de 2006 15:08
>   Para: 'oracle_br@yahoogrupos.com.br'
>   Assunto: Lógica SQL
>
>   Pessoal,
>
>   A versão do oracle é 10g
>
>   Como consigo montar uma consulta em uma tabela onde se tenha estas
> regras?
>
>   Regras:
>   1) Totalizar um campo: ir somando o valor do campo e mostrando linha
> a linha, no exemplo o campo "total1" foi sendo somado no campo "total2"
>
>   2) Fazer uma restrição e dependendo da resposta da primeira
> restrição fazer na seqüência outra restrição. No exemplo a "linha 13"
> não poderia ser mostrada
>
>   O que se espera:
>
>   |Tabela   LCR0A0
>   +-------+---------+-------+------+-------+-----------+  +--------------+
>   | Linha | Controle|Reserva|Local |  Tipo | Total 1   |  | Total 2      |
>   +-------+---------+-------+------+-------+-----------+  +--------------+
>   | 1     | 264512  |13607  |1574  |  0    |  3.089,50 |  |    3.089,50  |
>   | 2     | 264513  |13607  |1574  |  0    |  2.627,00 |  |    5.716,50  |
>   | 3     | 264547  |1      |1579  |  0    |  9.100,00 |  |   14.816,50  |
>   | 4     | 264548  |7296   |1596  |  0    |  9.000,00 |  |   23.816,50  |
>   | 5     | 264553  |1      |1579  |  0    | 19.041,00 |  |   42.857,50  |
>   | 6     | 264554  |7296   |1596  |  0    |  6.000,00 |  |   48.857,50  |
>   | 7     | 264555  |1      |1579  |  0    |  7.868,00 |  |   56.725,50  |
>   | 8     | 264562  |13216  |1696  |  0    |  9.000,00 |  |   65.725,50  |
>   | 9     | 264563  |24037  |1596  |  0    |  9.000,00 |  |   74.725,50  |
>   | 10    | 264572  |1      |1579  |  0    | 15.999,00 |  |   90.724,50  |
>   | 11    | 264581  |7296   |1596  |  0    |  6.000,00 |  |   96.724,50  |
>   | 12    | 264582  |1      |1579  |  0    |  3.600,00 |  |  100.324,50  |
>   | 13    | 0       |42     |1574  |  0    |    100,00 | 
> |              | Não Mostra
>   | 14    | 271184  |42     |1574  |  0    |    100,00 |  |  100.424,50  |
>   +-------+---------+-------+------+-------+-----------+  +--------------+
>
>   SE reserva  = 42  SE  controle  != 0  "mostro
> linha"                       
>   SE reserva  = 42  SE  controle  = 0  "NÃO mostro
> linha"                
>   ------------------------------------
>   O sql básico foi montado desta maneira
>   |Tabela   LCR0A0
>   +-------+---------+-------+------+-------+-----------+  +--------------+
>   | Linha | Controle|Reserva|Local |  Tipo | Total 1   |  | Total
> 2      |
>   +-------+---------+-------+------+-------+-----------+  +--------------+
>   select LINHA, CONTROLE, RESERVA, LOCAL, TIPO, TOTAL1
>   from LCR0A0
>   where RESERVA != 74
>   and LOCAL NOT like '%99'
>   and LOCAL NOT like '%991'
>   and TIPO=0
>   order by TIPO, CONTROLE
>
>
>   Quem puder responder agradeço
>   WPedroti
>
>
>
>
>  
> --------------------------------------------------------------------------------------------------------------------------
>   Atenção! As mensagens deste grupo são de acesso público e de inteira
> responsabilidade de seus remetentes.
>   Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
>  
> --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
>
>   Este Grupo recebe o apoio da SQL Magazine -
> www.devmedia.com.br/sqlmagazine
>   __________________________________________________________________
>   O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo,
> tenha o link do mesmo para evitar trafego(pedidos) desnecessário.
>
>
>         Yahoo! Grupos, um serviço oferecido por:
>               PUBLICIDADE
>               
>      
>
>
> ------------------------------------------------------------------------------
>   Links do Yahoo! Grupos
>
>     a.. Para visitar o site do seu grupo na web, acesse:
>     http://br.groups.yahoo.com/group/oracle_br/
>     
>     b.. Para sair deste grupo, envie um e-mail para:
>     [EMAIL PROTECTED]
>     
>     c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
> Serviço do Yahoo!.
>
>
>
>
> ------------------------------------------------------------------------------
>
>
>   No virus found in this incoming message.
>   Checked by AVG Free Edition.
>   Version: 7.1.394 / Virus Database: 268.8.0/352 - Release Date: 30/5/2006
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> --------------------------------------------------------------------------------------------------------------------------
> Atenção! As mensagens deste grupo são de acesso público e de inteira
> responsabilidade de seus remetentes.
> Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
>
> Este Grupo recebe o apoio da SQL Magazine -
> www.devmedia.com.br/sqlmagazine
> __________________________________________________________________
> O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo,
> tenha o link do mesmo para evitar trafego(pedidos) desnecessário.
>
>
> *Yahoo! Grupos, um serviço oferecido por:*
> PUBLICIDADE
> <http://br.ard.yahoo.com/SIG=12fsf7bdh/M=396559.7942981.9535540.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1149116048/A=3739190/R=0/id=noscript/SIG=154dcqslu/*http://lt.dell.com/lt/lt.aspx?CID=13040&LID=340715&DGC=BA&DGSeg=DHS&DURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs>
>
>
>
> ------------------------------------------------------------------------
> *Links do Yahoo! Grupos*
>
>     * Para visitar o site do seu grupo na web, acesse:
>       http://br.groups.yahoo.com/group/oracle_br/
>       
>     * Para sair deste grupo, envie um e-mail para:
>       [EMAIL PROTECTED]
>       <mailto:[EMAIL PROTECTED]>
>       
>     * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>       Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>




[As partes desta mensagem que não continham texto foram removidas]





--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a