Clayton,

Maravilha cara, funcionou legal.

Quanto a segunda regra aproveitando a sua tabela é o seguinte:

Se código = 5 e valor diferente de 141 então mostro a linha  ( 5 , 140 )
agora
Se código = 5 e valor = 141 então "NÃO" mostro a linha

É necessário trabalhar com as duas variáveis (código e valor), pode existir o código 6 com o valor 141 e neste caso eu devo mostrar a linha. A restrição é exclusiva para o conjunto código=5 e valor=141

Obrigado pela primeira dica.
WPedroti


-----Mensagem original-----
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Clayton Bonelli
Enviada em: quarta-feira, 31 de maio de 2006 17:53
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Lógica SQL

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.
Links do Yahoo! Grupos












--------------------------------------------------------------------------------------------------------------------------
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