Problem, jak wspomniano, jest to, że jesteś wybierając PEID z dwóch tabel, rozwiązaniem jest określenie, które PEID chcesz, na przykład
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;
Poza tym, jak Chris Lively sprytnie podkreśla w komentarz zewnętrzny SELECT jest całkowicie zbędny. Poniższe jest całkowicie równoważne z pierwszym.
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
lub nawet
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
ale proszę unikać korzystania SELECT * w miarę możliwości. Może działać podczas wykonywania interaktywnych zapytań, aby zapisać pisanie, ale w kodzie produkcyjnym nigdy go nie używaj.
Tak z ciekawości, dlaczego masz zewnętrzna „wybierz TB. *”? – NotMe