2017-05-12 137 views
0

我有从应用程序中导出这样一个txt文件:MS访问表变换

+---------+----------+-------+-------+-------+-------+-------+ 
| Month | Name  | Day1 | Day2 | Day3 | [...] | Day31 | 
+---------+----------+-------+-------+-------+-------+-------+ 
| January | Mr Red | White | Green |  |  | White | 
| January | Mr Grey | Red | White | White |  | Red | 
| January | Mr White | Green |  | White | White | Red | 
+---------+----------+-------+-------+-------+-------+-------+ 

我导入MS-访问该文件,并予得到的表(分配)。

但我需要的是这样的结果:

+---------+----------+-------+-----------+ 
| Month | Name  | Color | Occurency | 
+---------+----------+-------+-----------+ 
| January | Mr Red | White | 2   | 
| January | Mr Red | Green | 1   | 
| January | Mr Grey | Red | 2   | 
| January | Mr Grey | White | 2   | 
| January | Mr White | Green | 1   | 
| January | Mr White | White | 2   | 
| January | Mr White | Red | 1   | 
+---------+----------+-------+-----------+ 
  • 我必须使用MS-访问
  • 有只用5 '颜色'。

有没有解决方法? 非常感谢

回答

1

使用这样的查询:

SELECT [Month], [Name], Color, COUNT(Color) as Occurency FROM (
    SELECT [Month], [Name], Day1 as Color FROM Assignments 
    UNION ALL 
    SELECT [Month], [Name], Day2 as Color FROM Assignments 
    UNION ALL 
    SELECT [Month], [Name], Day3 as Color FROM Assignments 
    UNION ALL 
    .... 
    SELECT [Month], [Name], Day31 as Color FROM Assignments) 
WHERE Color is not null 
GROUP BY [Month], [Name], Color;