[firebase-br] Dúvida em SQL

Renan Rogowski Pozzo renanrpozzo em gmail.com
Seg Jan 20 09:19:08 -03 2014


Bom dia,
apenas dando um retorno.
Consegui chegar no resultado que eu precisava usando a função "list" do
firebird.

Faço o select usando list, no caso retornaria assim:
ID_PEDIDO     LIST
10                  1,2,3,4

Ai faço uma procura no campo list com essa mesma string (1,2,3,4). Dessa
forma resolveu.
Obrigado.

Abraço,
Renan Rogowski Pozzo

*"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos 37:5*


Em 16 de janeiro de 2014 12:16, Wilson Rosa <wsrosa em gmail.com> escreveu:

> Renan,
>
> seguindo o que o Walter postou sobre tabelas auto-referenciadas, no seu
> caso seria algo +/- assim:
>
> SELECT
> P1.ID_PEDIDO,
> P1.ID_KIT
> FROM
> TB_PEDIDOS P1
> JOIN
> TB_PEDIDOS P2 ON P1.ID_PEDIDO = P2.ID_PEDIDO
> JOIN
> TB_PEDIDOS P3 ON P1.ID_PEDIDO = P3.ID_PEDIDO
> JOIN
> TB_PEDIDOS P4 ON P1.ID_PEDIDO = P4.ID_PEDIDO
> WHERE
> (
>  (P1.ID_KIT = 1 AND P2.ID_KIT = 2 AND P3.ID_KIT = 3 AND P4.ID_KIT = 4) OR
>  (P1.ID_KIT = 2 AND P2.ID_KIT = 3 AND P3.ID_KIT = 4 AND P4.ID_KIT = 1) OR
>  (P1.ID_KIT = 3 AND P2.ID_KIT = 4 AND P3.ID_KIT = 1 AND P4.ID_KIT = 2) OR
>  (P1.ID_KIT = 4 AND P2.ID_KIT = 1 AND P3.ID_KIT = 2 AND P4.ID_KIT = 3)
> )
> ORDER BY
> P1.ID_PEDIDO,
> P1.ID_KIT
>
> como resultado:
>
> ID_PEDIDO ID_KIT
> 10 1
> 10 2
> 10 3
> 10 4
>
> Acho que é o que vc queria...
>
>
>
>
>
> *Wilson Rosawsrosa em gmail.com <wsrosa em gmail.com>*
>
>
>
> Em 15 de janeiro de 2014 22:21, W O <sistemas2000profesional em gmail.com
> >escreveu:
>
> > Otra forma de solucionarlo es usando tablas autoreferenciadas. Son muy
> > útiles para resolver esa clase de problemas:
> >
> >
> >
> http://firebird21.wordpress.com/2013/07/20/entendiendo-las-tablas-autoreferenciadas/
> >
> > Saludos.
> >
> > Walter.
> >
> >
> >
> >
> >
> > 2014/1/15 Frederico Godoi <frederico.godoi em gmail.com>
> >
> > > Mais complexo mesmo.
> > > Veja se assim atende ..
> > >
> > > SELECT ID_PEDIDO
> > >    FROM TABELA TB1
> > >  WHERE EXISTS ( SELECT ID FROM TABELA TB2 WHERE TB1.ID_PEDIDO =
> > > TB2.ID_PEDIDO AND ID_KIT = 1 )
> > >     AND EXISTS ( SELECT ID FROM TABELA TB3 WHERE TB1.ID_PEDIDO =
> > > TB3.ID_PEDIDO AND ID_KIT = 2 )
> > >     AND EXISTS ( SELECT ID FROM TABELA TB4 WHERE TB1.ID_PEDIDO =
> > > TB4.ID_PEDIDO AND ID_KIT = 3 )
> > >     AND EXISTS ( SELECT ID FROM TABELA TB5 WHERE TB1.ID_PEDIDO =
> > > TB5.ID_PEDIDO AND ID_KIT = 4 )
> > >
> > >
> > >
> > > 2014/1/15 Renan Rogowski Pozzo <renanrpozzo em gmail.com>
> > >
> > > > Olá,
> > > > fazendo dessa forma retorna todos os pedidos que tenham o ID_KIT 1
> ou 2
> > > ou
> > > > 3 ou 4. Preciso que retorne apenas os que tenham todos esses ID_KIT.
> > > >
> > > > Abraço,
> > > > Renan Rogowski Pozzo
> > > >
> > > > *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos
> > > 37:5*
> > > >
> > > >
> > > > Em 15 de janeiro de 2014 13:08, Frederico Godoi
> > > > <frederico.godoi em gmail.com>escreveu:
> > > >
> > > > > SELECT ID_PEDIDO FROM TABELA WHERE ID_KIT IN ( 1,2,3,4  )
> > > > >
> > > > >
> > > > > 2014/1/15 Renan Rogowski Pozzo <renanrpozzo em gmail.com>
> > > > >
> > > > > > Bom dia,
> > > > > > tenho uma dúvida em um comando SQL.
> > > > > >
> > > > > > Tenho uma tabela que tem os seguintes registros:
> > > > > >
> > > > > > ID   ID_PEDIDO  ID_KIT
> > > > > > 1          10              1
> > > > > > 2          10              2
> > > > > > 3          10              3
> > > > > > 4          10              4
> > > > > > 5          11              1
> > > > > > 6          12              1
> > > > > > 7          12              2
> > > > > >
> > > > > > O ID é minha chave primária.
> > > > > > Gostaria de retornar em um comando SQL todos os ID_PEDIDO que
> > possuem
> > > > os
> > > > > > ID_KIT 1,2,3,4. Por exemplo, o ID_PEDIDO 12 não poderia aparecer,
> > > pois
> > > > > ele
> > > > > > tem os ID_KIT 1 e 2, mas não tem os ID_KIT 3 e 4.
> > > > > >
> > > > > > Alguém tem alguma sugestão?
> > > > > >
> > > > > > Abraço,
> > > > > > Renan Rogowski Pozzo
> > > > > >
> > > > > > *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará."
> > Salmos
> > > > > 37:5*
> > > > > > ______________________________________________
> > > > > > FireBase-BR (www.firebase.com.br) - Hospedado em
> > www.locador.com.br
> > > > > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > > > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > > > > Para consultar mensagens antigas:
> http://firebase.com.br/pesquisa
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Frederico Godoi
> > > > > ______________________________________________
> > > > > FireBase-BR (www.firebase.com.br) - Hospedado em
> www.locador.com.br
> > > > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > > > >
> > > > ______________________________________________
> > > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > > >
> > >
> > >
> > >
> > > --
> > > Frederico Godoi
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista