Это странно в ms-access
, но вы можете решить, используя subquery
:
select t.name,
max(iff(rnk = 1, Food)) as food_1,
max(iff(rnk = 2, Food)) as food_2,
max(iff(rnk = 3, Food)) as food_3,
max(iff(rnk = 1, Price)) as price_1,
max(iff(rnk = 2, Price)) as price_2,
max(iff(rnk = 3, Price)) as price_3
from (select t.*,
(select count(*)
from table as t1
where t1.name = t.name and t1.id <= t.id
) as rnk
from table as t
) as t
group by t.name;
Предполагается, что в вашей таблице есть столбец identity
, поэтому я просто использовал id
.