Valeu...obrigado!

 

_______________________________________________________

 

Luciano Santos

DBA - TI

Grupo Tavares de Melo

Tel        : 83 3651-1150

Cel       : 83 9924-1607

E_mail : [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> 

Site      : http//www.tavaresdemelo.com.br

_______________________________________________________

  _____  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Sérgio 
Yuassa (FUSAN)
Enviada em: quarta-feira, 14 de junho de 2006 15:26
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Problema com campos

 

        REQUISIÇÃO
cod_req |     descricao       | cod_os
100     | 'REQUISICAO TESTE1' |    1
200     | 'REQUISICAO TESTE1' |    1

        OS
cod_os | descricao | origem
  1    | 'OS AGR'  |   1
  1    | 'OS IND'  |   2


Fazendo um produto cartesiano:

cod_req |     descricao       | cod_os  | cod_os | descricao | origem
100     | 'REQUISICAO TESTE1' |    1    |   1    | 'OS AGR'  |   1
100     | 'REQUISICAO TESTE1' |    1    |   1    | 'OS IND'  |   2
200     | 'REQUISICAO TESTE1' |    1    |   1    | 'OS AGR'  |   1
200     | 'REQUISICAO TESTE1' |    1    |   1    | 'OS IND'  |   2

Aplicando o teu where:
WHERE  A.COD_OS= B.COD_OS AND B.ORIGEM = 2;


cod_req |     descricao       | cod_os  | cod_os | descricao | origem
100     | 'REQUISICAO TESTE1' |    1    |   1    | 'OS IND'  |   2
200     | 'REQUISICAO TESTE1' |    1    |   1    | 'OS IND'  |   2

Aplicando o select:
SELECT  A.COD_REQ,A.DESCRICAO,A.COD_OS
(que na verdade é requisicao.cod_req, requisicao.descricao, requisicao.cod_os)

cod_req |     descricao       | cod_os  
100     | 'REQUISICAO TESTE1' |    1    
200     | 'REQUISICAO TESTE1' |    1    

Para pegar somente 1 requisição, vc tem que fazer uma regra, pegando a primeira
ou a segunda requisição. Vc pode fazer isso com alguma função de agrupamento, 
como
o min(), max(), etc....

Se fizer um min(cod_req), vai trazer somente a requisição 100....

Mostrei isso só para dizer que vc tem 2 requisições para uma OS. Se vc quiser 
os dados
das requisições da OS 1, vai trazer todas as requisições dessa OS. Então vc 
deve decidir se
vai trazer a primeira requisição, a última, a do meio, sei lá.....


  -----Mensagem Original----- 
  De: Luciano Santos 
  Para: oracle_br@yahoogrupos.com.br 
  Enviada em: 14 de junho de 2006 14:38
  Assunto: [oracle_br] Problema com campos


  Pessoal,



  Tenho a seguinte situação:



  Duas tabelas com a seguinte estrutura.





  Tabela requisição       COD_REQ NUMBER(3), DESCRICAO VARCHAR2(30), COD_OS 
NUMBER(3)

  Tabela os                  COD_OS NUMBER(3), DESCRICAO VARCHAR2(30), ORIGEM 
NUMBER(3)



  Na tabela de requisição tenho uma PK na coluna COD_REQ  e na tabela de OS 
tenho uma PK na coluna COD_OS e ORIGEM.



  Inseri as seguintes linhas na tabela de OS :

  INSERT INTO OS VALUES (1,'OS AGR', 1);

  INSERT INTO OS VALUES (1,'OS IND', 2);



  Inseri na tabela de requisição as seguintes linhas:

  INSERT INTO REQUISICAO VALUES (100,'REQUISICAO TESTE1', 1);

  INSERT INTO REQUISICAO VALUES (200,'REQUISICAO TESTE1', 1);



  Depois que inseri essa linhas preciso filtrar todas as requisições que são da 
origem 2;



  SELECT  A.COD_REQ,A.DESCRICAO,A.COD_OS FROM REQUISICAO A, OS B WHERE

    A.COD_OS= B.COD_OS AND B.ORIGEM = 2;



  COD_REQ    DESCRICAO      COD_OS     ORIGEM

       -------            -----------             ----------    ----------

       100             TESTE AGR           1          2

       200             TESTE IND             1          2



  Vejam que o select me trouxe as duas linhas como tendo a mesma OS com a mesma 
Origem e está correto, pois a condição na clausula where é verdadeira e eu não 
tenho o campo origem na tabela de requisicao, mas como posso resolver isso sem 
mudar a estrutura da tabela de Requisição, ou seja, o select só me retornar a 
linha referente a origem que desejo ?????



  Obrigado

  _______________________________________________________



  Luciano Santos

  _______________________________________________________





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

   

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

<*> 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:
    http://br.yahoo.com/info/utos.html

 


Responder a