Em 17-05-2012 14:14, Marcelo Silva (IG) escreveu:
> Pessoal, tenho o seguinte select:
> select distinct
> a.pedido,
> a.status,
> b.descricao
> from mv_servicos_status a
> inner join mv_status b on(b.status = a.status)
> where (a.data_bai + a.hora_bai) =
> (select max(data_bai + hora_bai)
> from mv_servicos_status
> where (pedido = a.pedido)
> and(codigo = a.codigo)
> and(a.pedido in(36663, 37228)))
> order by a.pedido
> Que me retorna as linhas:
> 36663 | I | CONFÊNCIA PEDIDO
> 36663 | N | ENTREGUE AO CLIENTE
> 37228 | N | ENTREGUE AO CLIENTE
> Agora preciso de um select incorporado com o acima que me retorne
> somente os pedidos que tiverem somente ‘N’
> Ou seja o 36663 não entraria no resultado do segundo select por ter um
> status ‘I’ em sua lista
select
distinct a.pedido,
a.status,
b.descricao
from
mv_servicos_status a
inner join mv_status b on(b.status = a.status)
where
(a.data_bai + a.hora_bai) =
(select max(data_bai + hora_bai)
from
mv_servicos_status
where
(pedido = a.pedido) and(codigo = a.codigo) and(a.pedido
in(36663,
37228)))
and
a.pedido not in (SELECT DISTINCT pedido FROM
mv_servicos_status WHERE
status = 'I')
order by
a.pedido
;
Não testei aqui mas assim deve trazer o que você quer.
[]s
Flavio Henrique A. Gurgel
Consultor e Instrutor 4Linux
Tel: +55-11-2125-4747
www.4linux.com.br
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral