Вы пробовали Crosstab Query?
EDIT
(я переворачиваюсь лучше после переформатирования вашего вопроса)
Ваше решение будет почти работать. Но то, что вы получите, будет иметь двойные записи (как это):
Plant Material Workcenter1 Setuptime1 Workcenter2 Setuptime2
1 Mat1 2 30 2 30
1 Mat1 2 30 3 30
1 Mat1 3 30 2 30
1 Mat1 3 30 3 30
1 Mat2 3 30 4 30
1 Mat2 3 30 3 30
1 Mat2 4 30 3 30
1 Mat2 4 30 4 30
2 Mat1 4 30 5 30
2 Mat1 4 30 4 30
2 Mat1 5 30 5 30
2 Mat1 5 30 4 30
А если у вас более двух рабочих центров, то становится еще хуже.
Так что вам нужен индикатор столбца
Create table tmp
(
plant int,
material vchar(20),
workcenter int,
setuptime vchar(20),
myCol int
);
(кстати, vchars не будет работать в ms-access / Jet ... хотя chars будет работать)
insert into tmp values( 1, mat1, 2, 30, 1);
insert into tmp values( 1, mat1, 3, 30, 2);
insert into tmp values( 1, mat2, 2, 30, 1);
insert into tmp values( 1, mat2, 3, 30, 2);
insert into tmp values( 2, mat1, 4, 30, 1);
insert into tmp values( 2, mat1, 5, 30, 2);
SELECT tmp.plant, tmp.material, tmp.workcenter, tmp.setuptime,
tmp_1.workcenter, tmp_1.setuptime
FROM tmp INNER JOIN tmp AS tmp_1 ON (tmp.material = tmp_1.material)
AND (tmp.plant = tmp_1.plant)
WHERE (((tmp.myCol)=1)
AND ((tmp_1.myCol)=2));
Конечно, если вы можете редактировать исходную таблицу, возможно, вы захотите просто добавить второй столбец Workcenter и Setuptime,