Column ambiguous

1

I have a code problem that I can not understand. The postgres always points to the error _ "column reference" pro_codigo "is ambiguous" _, however I gave the "nicknames" the column pro_codigo . I can not see the meaning.

SELECT DISTINCT "m"."mov_data",
                (CASE
                     WHEN mov_entrada = 'T' THEN 'Transferência'
                     WHEN mov_entrada='E-SI' THEN 'Entrada por Saldo de Implantação'
                     WHEN mov_entrada='E-C' THEN 'Entrada por Concorrência'
                     WHEN mov_entrada='E-DL' THEN 'Entrada por Dispensa de Licitação'
                     WHEN mov_entrada = 'E-CONV' THEN 'Entrada por Convite'
                     WHEN mov_entrada = 'E-D' THEN 'Entrada por doação'
                     WHEN mov_entrada = 'E-P' THEN 'Entrada por Pregão'
                     WHEN mov_entrada = 'E-AE' THEN 'Entrada por Ajuste de Estoque'
                     WHEN mov_entrada = 'E-EVENTUAL' THEN 'Entrada por Entrada Eventual'
                     WHEN mov_entrada = 'E-O' THEN 'Entrada Ordinária'
                     WHEN mov_entrada = 'E-TP' THEN 'Entrada por Tomada de Preços'
                     WHEN mov_entrada = 'E-INEX' THEN 'Entrada por Inexigibilidade'
                     WHEN mov_entrada = 'E-PER' THEN 'Entrada por Permuta'
                     WHEN mov_entrada = 'E' THEN 'Entrada por Nota Fiscal de Compra'
                     WHEN mov_entrada = 'M' THEN 'Entrada por Emprestimo'
                     WHEN mov_entrada= 'I' THEN 'Entrada por Inventário'
                     WHEN mov_entrada = 'O' THEN 'Outras Entradas'
                     WHEN mov_entrada = 'V' THEN 'Entrada por Devolução'
                 END) AS "mov_entrada",
                "m"."mov_codigo",
                "f"."for_nome",
                "u"."usr_nome",
                "s".*
FROM "movimento" AS "m"
INNER JOIN "fornecedor" AS "f" ON f.for_codigo=m.for_codigo
INNER JOIN "usuarios" AS "u" ON u.usr_codigo=m.usr_codigo
INNER JOIN "itens_movimento" AS "ite" ON ite.mov_codigo=m.mov_codigo
INNER JOIN "setor" AS "s" ON s.set_codigo=m.set_entrada
INNER JOIN "produto" AS "p" ON p.pro_codigo=ite.pro_codigo
WHERE (mov_tipo = 'E')
  AND (mov_data >= '01/06/2018')
  AND (mov_data <= '06/10/2018')
  AND (set_entrada = 4)
  AND (pro_codigo = 204)
ORDER BY "set_codigo" ASC,
         "mov_data" ASC
    
asked by anonymous 09.10.2018 / 19:17

1 answer

2

As you have many columns, the ideal so you do not forget any field is to reference the columns of all fields; try where like this:

WHERE (m.mov_tipo = 'E')
  AND (m.mov_data >= '01/06/2018')
  AND (m.mov_data <= '06/10/2018')
  AND (m.set_entrada = 4)
  AND (p.pro_codigo = 204)
ORDER BY s.set_codigo ASC, m.mov_data ASC
    
09.10.2018 / 19:37