Em 13 de outubro de 2011 11:07, Marcelo Silva (IG) <[email protected]> escreveu:
>
> Pessoal mais uma vez preciso da vossa ajuda
>
> Tenho o seguinte select
>
> select distinct f.data_age, a.cod_key, a.cod_id, d.nome, d.end_abr, 
> d.end_cad, d.end_num, d.end_com, d.end_bai, d.end_cid, d.end_est, end_cep, 
> a.pedido, a.data_age, a.hora_age, a.hora_fim, a.codigo, b.descricao, 
> c.qtd_item, e.obs_tecnico, a.tipo, a.agendamento, a.cod_ope, a.data_cad, 
> a.obs, a.observacoes, a.obs_interna
> from mv_vendas_pre_agenda a
> inner join mv_produtos b on(b.codigo = a.codigo)
> inner join mv_vendas_pre_itens c on(c.cod_id = a.cod_id)
>    and(c.pedido = a.pedido)
>    and(c.codigo = a.codigo)
>    and(c.obs not in('C'))
> left join mv_vendas e on(e.cod_id = a.cod_id)
>    and(e.pedido = a.pedido)
> inner join mv_clientes d on(d.cod_id = a.cod_id)
> right join mv_vendas_pre_mes f on(f.data_age = a.data_age)
> where (a.obs not in('C'))
> and(b.tipo = 'M')
> and((a.data_age is null)or(a.data_age >= '01/10/2011'))
> order by a.data_age, a.hora_age, a.cod_id
>
>
> Desculpe colocar o select todo, mas acho que fica melhor a compreensão
>
> A ideia é que a tabelas mv_vendas_pre_mes ( F ) tem registros que não tem na 
> tabela ( A )
> Mas preciso trazer essas datas justamente pra mostrar que não existem 
> agendamentos naquele dia.
>
> Imagino que o Right Join deveria trazer todos os registros da tabela ( F ) 
> mesmo não contendo a referncia, mas não é isso que ocorre.
> Não estou compreendendo esse Right
>
> Eu preciso que a tabela ( A ) seja a tabela principal do select
>


Tente definir explicitamente, com o uso de parênteses a ordem de seus join.

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a