MS Access Cross Tab Query - строка в столбец транспонировать - PullRequest
0 голосов
/ 11 ноября 2018

Использование перекрестных запросов в MS Access SQL как преобразовать таблицу вот так

===========================
|IND     |LBL     |TICKETS|
===========================
|1       |AM      |101    |
|2       |AM      |1      |
|1       |HR      |102    |
|1       |TV      |100    |
|2       |TV      |2      |
===========================

к этому

=======================
|LBL     |IND1   |IND2|
=======================
|AM      |101    |1   |
|HR      |102    |0   |
|TV      |100    |2   |
=======================

это запрос, который я пробовал.

Я думаю, что допустил ошибку в кросс-таблице, если вы могли бы указать, это было бы полезно

TRANSFORM First(TBL1.TICKETS) AS TCK
SELECT  TBL1.LBL, First(TBL1.TICKETS) AS TCK1
from 
(
SELECT IIF(A.AM= '[AM]' OR A.AM='[AM2]',1,2) AS IND
          , 'AM' AS LBL
          , COUNT(A.AM) AS TICKETS 
  FROM shree_main AS A GROUP BY IIF(A.AM='[AM]' OR A.AM='[AM2]',1,2), 'AM'

union all

SELECT IIF(A.Newpri= '[HR]' OR A.Newpri='[NML]' OR A.Newpri='[N2H]',1 ,2) AS IND, 'HR' AS LBL,
   count([A].Newpri) AS TICKETS FROM shree_main AS A 
    GROUP BY IIF(A.Newpri= '[HR]' OR A.Newpri='[NML]' OR A.Newpri='[N2H]',1,2), 'HR'

union all 
SELECT IIF(A.TV= '[SC]' OR A.TV='[TV]' OR A.TV='[TV][SC]' OR A.TV='[VE]',1 ,2) AS IND, 'TV' AS LBL, COUNT(A.TV) AS TICKETS FROM shree_main AS A GROUP BY IIF(A.TV= '[SC]' OR A.TV='[TV]' OR A.TV='[TV][SC]' OR A.TV='[VE]',1 ,2), 'TV'

)   AS TBL1

GROUP BY  TBL1.LBL, TBL1.LBL, TBL1.LBL, TBL1.LBL
PIVOT TBL1.LBL;

и это результат запроса

LBL TCK1    AM    HR     TV
AM  1       101     
HR  102           102   
TV  2                   100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...