2

Access に、クエリを作成するテーブルがあります。値 1 が 1 列目に発生した回数、値 2 が 2 列目に発生した回数などをカウントしたい。

ID  Col1    Col2    Col3  Col4
-------------------------------
172  1   2   4   3
172  3   2   4   1
173  2   3   5   4
173  2   1   3   4

出力 (値の出現回数):

             1   2   3   4   5   6   7   8
             ------------------------------
172  1st     1   0   1   0   0   0   0   0
172  2nd     0   2   0   0   0   0   0   0
172  3rd     0   0   0   2   0   0   0   0
172  4th     1   0   1   0   0   0   0   0
173  1st     0   2   0   0   0   0   0   0
173  2nd     1   0   1   0   0   0   0   0
173  3rd     0   0   1   1   1   0   0   0
173  4th     0   0   0   1   0   0   0   0
Total Count  3   2   4   3   1   0   0   0
4

2 に答える 2

0

MS-Access を使用しているため、次のようなクエリを使用できます。

TRANSFORM Count([s].[ID]) AS Counts
SELECT [s].ID, [s].[tbl]
FROM (
     SELECT ID, '1st' AS tbl, [1st] AS Val FROM yourtable
     UNION ALL SELECT ID, '2st' AS tbl, [2nd] AS Val FROM yourtable
     UNION ALL SELECT ID, '3st' AS tbl, [3rd] AS Val FROM yourtable
     UNION ALL SELECT ID, '4st' AS tbl, [4th] AS Val FROM yourtable

)  AS [s]
GROUP BY [s].ID, [s].[tbl]
PIVOT [s].[Val];

合計も必要な場合は、これを使用できます。

TRANSFORM Count([s].[ID]) AS Counts
SELECT [s].ID, [s].[tbl]
FROM (SELECT * FROM (
     SELECT ID, '1st' AS tbl, [1st] AS Val FROM yourtable
     UNION ALL SELECT ID, '2st' AS tbl, [2nd] AS Val FROM yourtable
     UNION ALL SELECT ID, '3st' AS tbl, [3rd] AS Val FROM yourtable
     UNION ALL SELECT ID, '4st' AS tbl, [4th] AS Val FROM yourtable)
  UNION ALL
   SELECT 999 AS ID, 'Total' AS tbl, Val FROM (
      SELECT ID, '1st' AS tbl, [1st] AS Val FROM yourtable
     UNION SELECT ID, '2st' AS tbl, [2nd] AS Val FROM yourtable
     UNION SELECT ID, '3st' AS tbl, [3rd] AS Val FROM yourtable
     UNION SELECT ID, '4st' AS tbl, [4th] AS Val FROM yourtable)
)  AS [s]
GROUP BY [s].ID, [s].[tbl]
PIVOT [s].[Val];
于 2013-05-13T13:48:48.243 に答える