#ms-access #pivot
#ms-access #сводный
Вопрос:
У меня есть следующие данные в таблице Access:
ID Name CAT
1 Bill Red
1 Bill Yellow
1 Bill Green
1 Bill Orange
2 Ted Purple
2 Ted White
3 Alice Indigo
3 Alice Violet
3 Alice Red
И я хотел бы вывести его следующим образом:
ID Cat1 Cat2 Cat3 Cat4
1 Red Yellow Green Orange
2 Purple White
3 Indigo Violet Red
Могу ли я использовать pivot для этого? Если да, может кто-нибудь предложить подходящий запрос? Большое спасибо.
Ответ №1:
Рассмотрим:
TRANSFORM First(Data.Cat) AS FirstOfCat
SELECT Data.ID, Data.Name
FROM Data
GROUP BY Data.ID, Data.Name
PIVOT "Cat" amp; DCount("*","Data","ID=" amp; [ID] amp; " AND Cat<'" amp; [Cat] amp; "'") 1;
Или, если есть поле уникального идентификатора записи, должен использоваться автономер:
TRANSFORM First(Data.Cat) AS FirstOfCat
SELECT Data.ID, Data.Name
FROM Data
GROUP BY Data.ID, Data.Name
PIVOT "Cat" amp; DCount("*","Data","ID=" amp; [ID] amp; " AND ID_PK<" amp; [ID_PK]) 1;