Re: [pgbr-geral] Consultas com AND entre relação N x N

2017-07-17 Por tôpico Kauan Mocelin
Funcionou perfeitamente Danilo, muito obrigado!

*Kauan Mocelin*
kauanmoce...@gmail.com

Em 15 de julho de 2017 01:03, Danilo Silva 
escreveu:

> Em 14 de julho de 2017 16:40, Kauan Mocelin 
> escreveu:
>
>> Boa tarde, estou com um problema no postgresql que não consigo resolver,
>> tenho a seguinte relação n x n:
>>
>> *tb_aditivo*
>> cod_aditivo
>>
>> *tb_aditivo_motivo_aditivo*
>> cod_aditivo_motivo_aditivo
>> cod_aditivo
>> cod_motivo_aditivo
>>
>> *tb_motivo_aditivo*
>> cod_motivo_aditivo
>>
>>
>> Na minha pesquisa informo 3 cod_motivo_aditivo = (2,4,8), preciso
>> retornar o cod_aditivo referente a EXATAMENTE estes 3 motivos.
>>
>> Não testei, mas tente assim:
>
> SELECT cod_aditivo FROM (
> SELECT
> tb_aditivo_motivo_aditivo.cod_aditivo,
> string_agg(tb_aditivo_motivo_aditivo.cod_motivo_aditivo::text,',' ORDER
> BY tb_aditivo_motivo_aditivo.cod_motivo_aditivo) AS cod_motivo_aditivo
> FROM tb_aditivo_motivo_aditivo WHERE 
> (tb_aditivo_motivo_aditivo.cod_motivo_aditivo
> IN (2,4,8))
> GROUP BY tb_aditivo_motivo_aditivo.cod_aditivo
> ) AS aditivos
> WHERE (cod_motivo_aditivo = '2,4,8')​
>
>
> []s
> Danilo​
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Consultas com AND entre relação N x N

2017-07-14 Por tôpico Danilo Silva
Em 14 de julho de 2017 16:40, Kauan Mocelin 
escreveu:

> Boa tarde, estou com um problema no postgresql que não consigo resolver,
> tenho a seguinte relação n x n:
>
> *tb_aditivo*
> cod_aditivo
>
> *tb_aditivo_motivo_aditivo*
> cod_aditivo_motivo_aditivo
> cod_aditivo
> cod_motivo_aditivo
>
> *tb_motivo_aditivo*
> cod_motivo_aditivo
>
>
> Na minha pesquisa informo 3 cod_motivo_aditivo = (2,4,8), preciso retornar
> o cod_aditivo referente a EXATAMENTE estes 3 motivos.
>
> Não testei, mas tente assim:

SELECT cod_aditivo FROM (
SELECT
tb_aditivo_motivo_aditivo.cod_aditivo,
string_agg(tb_aditivo_motivo_aditivo.cod_motivo_aditivo::text,',' ORDER BY
tb_aditivo_motivo_aditivo.cod_motivo_aditivo) AS cod_motivo_aditivo
FROM tb_aditivo_motivo_aditivo WHERE
(tb_aditivo_motivo_aditivo.cod_motivo_aditivo IN (2,4,8))
GROUP BY tb_aditivo_motivo_aditivo.cod_aditivo
) AS aditivos
WHERE (cod_motivo_aditivo = '2,4,8')​


[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Consultas com AND entre relação N x N

2017-07-14 Por tôpico Osvaldo Kussama
Em 14/07/2017, Kauan Mocelin escreveu:
> Boa tarde, estou com um problema no postgresql que não consigo resolver,
> tenho a seguinte relação n x n:
>
> *tb_aditivo*
> cod_aditivo
>
> *tb_aditivo_motivo_aditivo*
> cod_aditivo_motivo_aditivo
> cod_aditivo
> cod_motivo_aditivo
>
> *tb_motivo_aditivo*
> cod_motivo_aditivo
>
>
> Na minha pesquisa informo 3 cod_motivo_aditivo = (2,4,8), preciso retornar
> o cod_aditivo referente a EXATAMENTE estes 3 motivos.
>
> Tentei fazer de várias formas com o IN, mas não da certo pois um aditivo
> pode ter os motivos 1,4,8, neste caso como o IN funciona com OR não vai
> trazer exatamente os caras que eu preciso.
>


Tente:
SELECT cod_aditivo FROM tb_aditivo_motivo_aditivo WHERE
EXISTS (SELECT * FROM tb_aditivo_motivo_aditivo WHERE
cod_motivo_aditivo = 2) AND
EXISTS (SELECT * FROM tb_aditivo_motivo_aditivo WHERE
cod_motivo_aditivo = 4) AND
EXISTS (SELECT * FROM tb_aditivo_motivo_aditivo WHERE 
cod_motivo_aditivo = 8);

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral