RES: [oracle_br] Ajuda com sql posição de estoque por data

2012-06-14 Por tôpico Pedro de Souza
Paulo,  obrigado fiz o ajuste aqui e funcionou perfeitamente. Obrigado
também Delson pela ajuda.

 

Att.

 

Pedro de Souza

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de Paulo A. Petruzalek
Enviada em: quinta-feira, 14 de junho de 2012 07:50
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Ajuda com sql posição de estoque por data

 

  

Se você quer retornar a quantidade na maior data menor ou igual ao parametro
do relatório, o filtro da data deve estar na query mais interna (select
max(data) where data = '...' and ...).

Você chegou bem perto, só falta fazer esse ajuste. Com isso você também vai
poder cortar um nível de subquery:

SELECT H2.* 
FROM TABELA1 H2
WHERE H2.DATA = (SELECT MAX(H3.DATA) 
FROM TABELA1 H3
WHERE H3.CODPRO = H2.CODPRO 
AND H3.DATA = '14/06/2012'
GROUP BY H3.CODPRO);

On Thu, 14 Jun 2012 10:37:44 -
pedrossjr pedros...@yahoo.com.br mailto:pedrossjr%40yahoo.com.br 
wrote:

 Bom dia pessoal, estou quebrando a cabeça aqui mais não consigo gerar este
relatório. Preciso trazer a posição de estoque de produtos a partir de uma
data informada, segue o exemplo.
 Tenho a seguinte tabela abaixo:
 
 CodPro Qtd Data
 1 6 27/05/2012 
 1 5 30/04/2012
 1 4 01/03/2011 
 2 10 01/06/2012 
 2 3 03/01/2012 
 3 80 01/02/2012
 3 35 22/07/2011
 
 Quero a data de posição de estoque do dia 25/04/2012, no meu relatório
teria que sair assim:
 
 CodPro Qtd Data
 1 4 01/03/2011 
 2 3 03/01/2012 
 3 80 01/02/2012
 
 Outro exemplo, posição do dia 14/06/2012:
 
 CodPro Qtd Data
 1 6 27/05/2012 
 2 10 01/06/2012 
 3 80 01/02/2012
 
 Já tentei vários sql e meu último até o momento foi este mais não
funcionou ainda:
 
 SELECT H1.* FROM (SELECT H2.* FROM TABELA1 H2
 WHERE H2.DATA = (SELECT MAX(H3.DATA) FROM TABELA1 H3
 WHERE H3.CODPRO = H2.CODPRO GROUP BY H3.CODPRO)
 AND H2.QTD  0) H1 WHERE H1.CODPRO  0
 AND H1.DATA = '14/06/2012'
 
 Alguém já precisou fazer algo deste tipo que possa me dar uma ajudar?
 Agradeço a todos.
 
 Pedro de Souza
 

-- 
Paulo A. Petruzalek
Oracle DBA
OCA 11g - OCP PL/SQL
http://oraculodosul.blogspot.com
ppetruza...@yahoo.com.br mailto:ppetruzalek%40yahoo.com.br 



  _  

Nenhum vírus encontrado nessa mensagem.
Verificado por AVG - www.avgbrasil.com.br
Versão: 2012.0.2178 / Banco de dados de vírus: 2433/5068 - Data de
Lançamento: 06/13/12



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



Re: [oracle_br] Ajuda com SQL

2011-08-26 Por tôpico Marcos de Moura Gonçalves
Bom dia Thales,

Já que vc não tem FK, terá que identificar as tabelas filhas de CLIENTE
através do nome da coluna mesmo... A busca seria algo assim:
SELECT *
FROM all_tab_columns
WHERE column_name LIKE '%CODCLIENTE%';

Uma vez identificadas as tabelas filhas, vc verifica os registros órfãos
assim:
SELECT *
FROM tabela_filha a
WHERE NOT EXISTS
(SELECT NULL
FROM cliente b
WHERE b.codcliente = a.codcliente);

Espero ter ajudado.

Att.

Marcos

Em 26 de agosto de 2011 11:30, Thales Renato Salgado Menezes 
thalessalg...@yahoo.com.br escreveu:

 **


 Pessoal,

 Sou novato com SQL e estou com uma dúvida que parece ser simples. Tenho uma
 tabela de cliente que tem o campo codcli, este campo é sequencial, porém não
 há uma sequence para fazer o insert de um novo cliente, a aplicação
 simplismente pega o último código e incrementa mais 1 e insere no banco. O
 meu problema é que alguns clientes foram apagados e com isso o seu código
 também, quem modelou este banco não colocou este campo como chave
 estrangeira em outras tabelas, ou seja, tenho codcliente em outras tabelas
 de clientes que não existem.

 codcliente   nomecliente
 1   cliente x
 2   cliente b
 4   cliente c
 6   cliente d

 Preciso de uma função ou um sql que pegue os codcliente que não existam,
 como por exemplo o cliente de código 3 e 5.
 Seria possível pegar estes códigos?

 Meu banco é 10g - 10.2.0.4 - Red Hat 5.4

 Obrigado pela atenção de vocês.

 Thales Renato S. Menezes

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

  



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





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 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:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




[oracle_br] ajuda com SQL

2008-06-25 Por tôpico Adonai S . Canêz
Bom dia a todos,

pessoal estou comecando a trabalhar com sql e estou com algumas 
dificuldades, tenho que pegar o num_exeplar que teve mais reservas que 
esta na tabela reservas e com esse resultado retirar num_edicao que 
esta na tabela exemplares, estou fazendo dessa forma, mas não esta 
funcionando, tenho que usar subconsultas pra gerar o resultado, 
agradeço quem poder me dar uma ajuda.

select ex.num_edicao
from arruda.exemplares ex
where ex.num_exemplar in (   
  select res.num_exemplar, count(*)
  from arruda.reservas res
  where rownum = 1
  group by num_exemplar
  order by 2
  )

Adonai



Re: [oracle_br] ajuda com SQL

2008-06-25 Por tôpico José Costacurta
Acho que isso funciona só não sei se é a melhor forma.

select ex.num_edicao
from arruda.exemplares ex
where ex.num_exemplar =
 (select num_exemplar from
  (select res.num_exemplar, count(1) qtde
  from arruda.reservas res
  group by res.num_exemplar
  order by 2 desc
  )
 where rownum = 1
 )

Abraço.

Adonai S. Canêz wrote:

 Bom dia a todos,

 pessoal estou comecando a trabalhar com sql e estou com algumas
 dificuldades, tenho que pegar o num_exeplar que teve mais reservas que
 esta na tabela reservas e com esse resultado retirar num_edicao que
 esta na tabela exemplares, estou fazendo dessa forma, mas não esta
 funcionando, tenho que usar subconsultas pra gerar o resultado,
 agradeço quem poder me dar uma ajuda.

 select ex.num_edicao
 from arruda.exemplares ex
 where ex.num_exemplar in (
 select res.num_exemplar, count(*)
 from arruda.reservas res
 where rownum = 1
 group by num_exemplar
 order by 2
 )

 Adonai