Olá Pessoal,

O meu select abaixo, esta duplicando as linhas, mesmo usando DISTINCT.

select DISTINCT  a.cd_fil,a.cd_ordem,a.dt_abertura,
        a.cd_cli,f.nm_cli,f.de_endereco,f.fone,
        a.vlr_final_os,a.vlr_desc_os,a.vlr_outros,
        a.vlr_tot_prod,a.vlr_tot_serv,a.servico_solicitado,
        a.de_ocorrencia,
        h.de_cid,a.cd_funcio,e.nm_funcio,b.cd_prod,
        g.de_prod,b.qtde_prod,b.vlr_unit_prod,b.perc_desc_prod,
        b.vlr_desc_prod,b.vlr_prod,b.total_prod,
        c.cd_servico,d.de_servico,c.qtd_serc,c.vlr_unit,
        c.perc_desc_serv,c.vlr_desc,c.vlr_serv,
        c.sub_total,
        CASE
             WHEN a.fg_tipo_os = 'INS' THEN 'INSTALAÇÃO'
             WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
             WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
             WHEN a.fg_tipo_os = 'ACO' THEN 'À COBRAR'
             WHEN a.fg_tipo_os = 'GAR' THEN 'GARANTIA'
             WHEN a.fg_tipo_os = 'CON' THEN 'CONTRATO'
             WHEN a.fg_tipo_os = 'ORC' THEN 'ORÇAMENTO'
             ELSE 'OUTROS'
         END tipo_os,
         CASE
             WHEN a.fg_status_os = 'AB' THEN 'ABERTA'
             WHEN a.fg_status_os = 'FC' THEN 'FECHADA'
             ELSE 'INVÁLIDA'
         END status_os

from osservhe a inner JOIN  osprodut b
     on a.cd_ordem = b.cd_ordem
   inner join cliente f
     on a.cd_cli = f.cd_cli
    inner join vendfunc e
     on a.cd_funcio = e.cd_funcio
   inner join osservde c
     on a.cd_ordem = c.cd_ordem
   left join produto g
     on b.cd_prod = g.cd_prod
   left join servicos d
     on c.cd_servico = d.cd_servico
   inner join cidade h on
   f.cd_cid = h.cd_cid
   order by a.dt_abertura,a.cd_ordem

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

Responder a