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: | |
|
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]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.