Проблема, как уже упоминалось, заключается в том, что вы выбираете PEID из двух таблиц, решение состоит в том, чтобы указать, какой PEID вы хотите, например,
SELECT tb.*
FROM (
SELECT tb1.PEID,tb2.col1,tb2.col2,tb3.col3 --, and so on
FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2
ON tb1.PROD_PERM = tb2.PEID
INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID
) AS tb;
Помимо этого, как ловко указывает Крис Лайвли в комментарии, внешний SELECT совершенно излишен. Следующее полностью эквивалентно первому.
SELECT tb1.PEID,tb2.col1,tb2.col2,tb3.col3 --, and so on
FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2
ON tb1.PROD_PERM = tb2.PEID
INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID
или даже
SELECT *
FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2
ON tb1.PROD_PERM = tb2.PEID
INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID
но, пожалуйста, по возможности избегайте SELECT * . Он может работать, когда вы выполняете интерактивные запросы, чтобы сохранить типизацию, но в рабочем коде никогда не используйте его.