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 >
