| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 10:44:29
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
É possível eu fazer o seguinte:
1 - Tenho um método que realiza uma consulta no banco.
2 - Tenho um segundo método que realiza uma outra consulta no banco.
3 - Eu quero criar um terceiro método que pegue o resultado da consulta dos dois primeiros métodos, junte-os e mostre sem repetições.
Abaixo eu posto os métodos:
-> Neste primeiro, seleciono os itens da tabela produtos com o distinct, quando eles aparecem em alguma nota de entrada
-> Neste segundo, seleciono os itens da tabela produtos com o distinct, quando eles aparecem em alguma nota de saída
O que eu quero fazer, é pegar o primeiro sql, juntar com o segundo sql, e exibir todos os itens (codProd e nomeProd), sem repetições.
Alguém expert em SQL se dispõe a me ajudar? Ou alguém sugere uma outra forma para mim fazer isso? Tentei fazer tudo em um sql só, mas não ficou legal, creio que assim, ganho em performance. E cada sql, separado, já está testado e retornando o resultado que eu quero. Resta junta-los.
O que eu poderia retornar em cada um desses dois métodos, que eu conseguisse pegar no terceiro, e fazer esta separação que eu quero. Pensei em HashMap, mas não sei, por isso estou buscando ajuda.
Agradeço.
This message was edited 2 times. Last update was at 14/03/2008 14:03:17
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 11:43:38
|
nebal.metz
Thread.start()
![[Avatar]](/images/avatar/4bac3882938ce191ce0436d7bf533c62.jpg)
Membro desde: 26/09/2007 18:09:23
Mensagens: 36
Offline
|
Opa.
Como tu tentou juntar os dois sqls??
Com um union ou union all??
O que nao ficou legal quando voce tentou juntar os dois?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 12:08:21
|
Guitar_Men
JavaEvangelist
![[Avatar]](/images/avatar/40dcade0986efb728091792e3c538e6c.jpg)
Membro desde: 21/02/2008 10:01:31
Mensagens: 463
Offline
|
Usa o union como disse o nebal, só que atente-se em dar os mesmos nomes aos alias dos campos, senão ja era....
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 12:09:16
|
brunoha
Thread.start()
![[Avatar]](/images/avatar/6a8de3355c4f1b79bab7f9375c77aee8.jpg)
Membro desde: 07/03/2008 15:59:24
Mensagens: 26
Localização: São Paulo
Offline
|
Já que você não quer repetições no Resultset, então você pode juntar as duas consultas, e utilizar o Union, ao invés de criar 2 métodos, e unir o Resultset de cada um em um terceiro método.
Aí, vc teria q colocar um campo a mais no Select, para vc distinguir qual registro eh nota de entrada, e qual registro eh nota de saída.
Por exemplo:
No segundo Select:
O código ficaria assim:
Qualquer dúvida, eh soh falar ae...
|
Bruno Heitzmann |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 12:10:25
|
brunoha
Thread.start()
![[Avatar]](/images/avatar/6a8de3355c4f1b79bab7f9375c77aee8.jpg)
Membro desde: 07/03/2008 15:59:24
Mensagens: 26
Localização: São Paulo
Offline
|
Desculpa ae pelo "); tudo desordenado.
|
Bruno Heitzmann |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 12:53:27
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Desculpem a demora, hora do almoço.
Realmente, eu não tentei com o operador UNION, mas agora somente fazendo as modificação propostas por você brunoha, executando direto no Postgree, obtenho o seguinte erro:
O SQL ficou assim:
Eu ainda não analisei e nem pesquisei para ver o porque do erro, mas se alguém quiser facilitar e já me responder eu agradeço.
O erro tá lá no inicio do segundo select...
This message was edited 1 time. Last update was at 14/03/2008 12:56:05
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 12:56:15
|
Guitar_Men
JavaEvangelist
![[Avatar]](/images/avatar/40dcade0986efb728091792e3c538e6c.jpg)
Membro desde: 21/02/2008 10:01:31
Mensagens: 463
Offline
|
tira o order by do primeiro select deixa só na ultima expressão, e tenta usar o UNION ALL
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 13:01:03
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Era isso mesmo Guitar_Men.
Obrigado, por enquando. No resultado da consulta, reparei alguns resultados indesejados, mas por enquanto agradeço muito.
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 13:03:27
|
Guitar_Men
JavaEvangelist
![[Avatar]](/images/avatar/40dcade0986efb728091792e3c538e6c.jpg)
Membro desde: 21/02/2008 10:01:31
Mensagens: 463
Offline
|
SQL rlz a lot !!!!
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 13:15:01
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
brunoha wrote:Já que você não quer repetições no Resultset, então você pode juntar as duas consultas, e utilizar o Union, ao invés de criar 2 métodos, e unir o Resultset de cada um em um terceiro método.
Não entendi, como eu poderia unir o ResultSet de cada consulta em um terceiro método???
Olhem uma parte da saída produzida pela execução do SQL:
Tá dando uma linha para a Nota de Entrada e uma linha para a Nota de Saída (tem alguns produtos que não, coincidentemente estes que peguei, todos deram uma linha para a entrada e para a saída). Mas a questão é:
Como que eu excluo daqui esses registros repetidos agora?? Adiciono mais alguma coisa no meu SQL, ou trato o resultado deste em um novo método, ou alguma outra sugestão??? Agradeço.
Obs: Não consegui alinhar direito a tabela.
This message was edited 2 times. Last update was at 14/03/2008 13:16:37
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 13:15:31
|
brunoha
Thread.start()
![[Avatar]](/images/avatar/6a8de3355c4f1b79bab7f9375c77aee8.jpg)
Membro desde: 07/03/2008 15:59:24
Mensagens: 26
Localização: São Paulo
Offline
|
fernandoeick, que tipo de resultado indesejado???
Se for repetido, vc vai ter que usar o Union, ao invés do Union All
Não sabia que era Postgree SQL, e tbm não tinha testado a query por aqui para ver se tava funfando realmente.
Desculpae...
|
Bruno Heitzmann |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 13:17:17
|
brunoha
Thread.start()
![[Avatar]](/images/avatar/6a8de3355c4f1b79bab7f9375c77aee8.jpg)
Membro desde: 07/03/2008 15:59:24
Mensagens: 26
Localização: São Paulo
Offline
|
Pelo resultset que vc passou, penso eu q existe uma nota de entrada, e uma nota de saída para cada produto.
Não é isso?
|
Bruno Heitzmann |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 13:18:22
|
Guitar_Men
JavaEvangelist
![[Avatar]](/images/avatar/40dcade0986efb728091792e3c538e6c.jpg)
Membro desde: 21/02/2008 10:01:31
Mensagens: 463
Offline
|
Quais registros repetidos, se vc usou o distinct não tem result repetido...
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 13:19:04
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Pois é, esqueci de mencionar que era Postgree.
Mas o resultado indesejado, é este que colei acima, duplicação.
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 13:24:24
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Bom, na verdade, o que eu quero, é que não apareçam duas linhas com o mesmo produto. Um produto (ou melhor, um codProd) pode aparecer somente uma vez.
Se o mesmo produto estiver na entrada, e estiver também na saída, eu quero exibir só um dos dois.
Ficou mais claro agora?
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
|
|