I doubt you'll find any RDBMS which is capable of joining more than two sets of data at the same time.
Getting both, join elimination and fast processing at the same time is probably not possible. If you change the PI to ID all the joins should be AMP-local, but then you can't define (PART,ID) as unique (unless you add a USI).
Instead of joining the same table multiple times you could also use some CASE/GROUP BY logic (again based on ID as NUPI leading to AMP-local aggregation):
select
ID,
max(case when PART = '01' then Data end) as Data0,
max(case when PART = '02' then Data end) as Data1,
max(case when PART = '03' then Data end) as Data2,
max(case when PART = '04' then Data end) as Data3,
...
from SRC
group by 1Dieter
↧