Bem, como o pessoal já falou, o UNION ALL deve ajudar.

Mas por que você não coloca a cláusula where diretamente nos selects e
elimina o select mais externo?


Anderson.


--- Em [email protected], "Fabio Santos" <[EMAIL PROTECTED]> escreveu
>
> Quando eu sei responder, alguém responde na minha frente. Assim tá
> dificil de eu ajudar a comunidade. Hahahahahahahah
> 
> Desculpe o off-topic, foi só uma brincadeira para relaxar porque estou
> desde ontem de manhã trabalhando direto.
> 
> Bom Wellington eh isso ai que o clayton respondeu. Use o UNION ALL ou
> coloque o identificador que faz a diferenca nos registros.
> 
> Abraços a todos
> 
> 
> 
> 
> -----Mensagem original-----
> De: [email protected] [mailto:[EMAIL PROTECTED]
> Em nome de Clayton Rocha
> Enviada em: quinta-feira, 8 de março de 2007 10:54
> Para: [email protected]
> Assunto: RES: [oracle_br] Agrupamentos e sub-selects
> 
> 
> Já tentou utilizar o "UNION ALL" no lugar da clausula UNION?
> 
> A clausula UNION elimina os registros duplicados. A partir do momento
> que
> você coloca o identificador as duas linhas deixam de ser iguais
> mostrando o
> resultado. Acredito que se você substituir por UNION ALL ele irá
> retornar o
> resultado desejado.
> 
> []'s
> 
> Clayton Rocha
> 
> 
> -----Mensagem original-----
> De: [email protected] [mailto:[EMAIL PROTECTED]
> Em
> nome de 'Wellingthon Cristiano'
> Enviada em: quinta-feira, 8 de março de 2007 10:44
> Para: [email protected]
> Assunto: [oracle_br] Agrupamentos e sub-selects
> 
> Bom dia,
> 
>  
> 
> Bom...
> 
> Estou com uma duvida aqui que, acredito ser bastante elementar...
> 
> Mas, eu não consigo ver lógica na minha falha... talvez alguém aqui com
> mais
> experiência ou seguindo outras linhas de raciocínio saiba ver onde eu tô
> errando...
> 
>  
> 
> Seguinte,
> 
> Tem duas tabelas de débitos com estrutura bastante similar e eu preciso
> relacionar as duas.
> 
>  
> 
> Se eu faço o seguinte:
> 
> A consulta abaixo retorna o seguinte:
> 
> select *
>   from (select dlt.id_loja, dlt.id_debito_codigo, dlt.id_sub_codigo,
> dlt.data data, dlt.valor
>            from debito_loja_turqueza dlt
>          union
>          select dl.id_loja, dl.id_debito_codigo, dl.id_sub_codigo,
> dl.data
> data, dl.valor
>            from debito_loja dl) dl
>  where dl.data = '05/02/2007'
>    and dl.id_debito_codigo = 5
> 
>  
> 
> SQL> 
> 
>  
> 
>    ID_LOJA ID_DEBITO_CODIGO ID_SUB_CODIGO DATA             VALOR
> 
> ---------- ---------------- ------------- ----------- ----------
> 
>          8                5            44 05/02/2007        89,9
> 
>  
> 
>  
> 
> E a consulta abaixo
> 
> select *
>   from (/*select dlt.id_loja, dlt.id_debito_codigo, dlt.id_sub_codigo,
> dlt.data , dlt.valor
>            from debito_loja_turqueza dlt
>          union*/
>          select dl.id_loja, dl.id_debito_codigo, dl.id_sub_codigo,
> dl.data ,
> dl.valor
>            from debito_loja dl) dl
>  where dl.data = '05/02/2007'
>    and dl.id_debito_codigo = 5;
> 
>  
> 
> retorna o seguinte:
> 
> SQL> 
> 
>  
> 
>    ID_LOJA ID_DEBITO_CODIGO ID_SUB_CODIGO DATA             VALOR
> 
> ---------- ---------------- ------------- ----------- ----------
> 
>          8                5            44 05/02/2007        89,9
> 
>          8                5            44 05/02/2007        89,9
> 
>  
> 
>  
> 
> Sendo que esta ultima está correta. 
> 
> Existe mesmo duas linhas de debito com um mesmo código de agrupamento de
> debito [id_debito_codigo] e valor...
> 
>  
> 
>  
> 
>  
> 
>  
> 
> Certo...
> 
> Daí eu faço a consulta abaixo:
> 
> select *
>   from (select dlt.id_debito, dlt.id_loja, dlt.id_debito_codigo,
> dlt.id_sub_codigo, dlt.data , dlt.valor
>            from debito_loja_turqueza dlt
>          union
>          select dl.id_debito, dl.id_loja, dl.id_debito_codigo,
> dl.id_sub_codigo, dl.data , dl.valor
>            from debito_loja dl) dl
>  where dl.data = '05/02/2007'
>    and dl.id_debito_codigo = 5;
> 
>  
> 
> Onde foi incluído o identificador do a linha do débito [id_debito].
> 
>  
> 
> SQL> 
> 
>  
> 
>  ID_DEBITO    ID_LOJA ID_DEBITO_CODIGO ID_SUB_CODIGO DATA
> VALOR
> 
> ---------- ---------- ---------------- ------------- -----------
> ----------
> 
>      94579          8                5            44 05/02/2007
> 89,9
> 
>      94580          8                5            44 05/02/2007
> 89,9
> 
>  
> 
>  
> 
> Ou seja, só de incluir o identificador da linha a consulta já apareceu
> bonitinho com o union.
> 
>  
> 
>  
> 
> A minha questão é: Por que a primeira consulta não retornou os mesmos
> dados
> da segunda???
> 
> E, por que o fato de colocar o identificador fez com que a consulta
> saísse
> certinha???
> 
>  
> 
>  
> 
> Consegui ser claro na questão???
> 
>  
> 
>  
> 
> Atenciosamente,
> 
>  
> 
> Wellingthon Cristiano Alves de Araújo 
> UpDate Tecnologia - (31) 3292-3722 - BH-MG 
> Desenvolvimento 
> 
>  
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> >Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
> Procedure
> » Scripts » Tutoriais acesse:
> http://www.oraclebr.com.br/codigo/ListaCodigo.php 
> ------------------------------------------------------------------------
> ----
> ----------------------------------------------
> >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/[email protected]/ 
> ------------------------------------------------------------------------
> ----
> ----------------------------------------------
> >O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
> http://www.oraclebr.com.br/  
> ------------------------------------------------------------------------
> ----
> --------------------------------------------  
> Links do Yahoo! Grupos
> 
>  
> 
> 
> 
> >Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
> Procedure » Scripts » Tutoriais acesse:
> http://www.oraclebr.com.br/codigo/ListaCodigo.php 
> ------------------------------------------------------------------------
> --------------------------------------------------
> >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/[email protected]/ 
> ------------------------------------------------------------------------
> --------------------------------------------------
> >O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
> http://www.oraclebr.com.br/  
> ------------------------------------------------------------------------
> ------------------------------------------------  
> Links do Yahoo! Grupos
> 
>  
> 
> -- 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.446 / Virus Database: 268.18.7/713 - Release Date: 7/3/2007
> 09:24
>  
> 
> -- 
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.5.446 / Virus Database: 268.18.7/713 - Release Date: 7/3/2007
> 09:24
>


Responder a