Member 13992723 Ответов: 1

У меня возникла проблема с переводом запроса с SQL на postgresql


Всем привет. Я перевожу хранимую процедуру sql в postgre. И я успешно сделал это, но когда я попытался проверить его, он бросил мне ошибку:

ERROR: table name "my_factors" specified more than once CONTEXT: SQL statement "update my_factors set factor = (my_factors.to_weight/dni_totals.dni_sum) from my_factors join dni_totals on my_factors.transport_order = dni_totals.to_id"


Код из функции pqslq приведен выше, я выполнил хранимую процедуру в sql, и она успешно выполнилась. Код из хранимой процедуры sql находится здесь:

update #myFactors set Factor = (#myFactors.TOWeight/#DNITotals.DNISum)
from #myFactors join #DNITotals on #myFactors.TransportOrder = #DNITotals.TOId 


Может ли кто-нибудь дать мне совет, как справиться с этой ошибкой?

Что я уже пробовал:

Я не знаю, что делать, я ничего не пробовал.

1 Ответов

Рейтинг:
12

k5054

Попробуй

UPDATE my_factors
    SET factor = my_factors.to_weight/dni_totals.dni_sum
    FROM dni_totals
    WHERE my_factors.transport_order = dni_totals.to_id;

PostgreSQL не любит SET table.column синтаксис, поэтому вы используете там не украшенное имя столбца. Кроме того, вам нужно указать имена таблиц только в том случае, если будет неясно, из какой таблицы взят столбец. Опустите ли вы имена таблиц или нет, это будет вопрос стиля.

Здесь есть краткое руководство по обновлению/присоединению: PostgreSQL UPDATE Join с практическим примером[^]


Member 13992723

Спасибо

Maciej Los

5ed!