在Access中创建日历

时间:2014-03-07 21:59:53

标签: ms-access ms-access-2007

我在查询中有5个字段。

员工,项目ID,年,月和日

我需要将所有查询数据放入报表中,其中数据按年,月和员工排序,每个项目ID都需要放在适当的日期。

My Query:

Alice | P555 | 2014 | 11 November | 29
Darth | P999 | 2014 | 12 December | 27
Bob   | P555 | 2014 | 12 December | 28
Darth | P555 | 2014 | 12 December | 29
Alice | P999 | 2014 | 12 December | 29
Bob   | P999 | 2014 | 12 December | 29
Alice | P999 | 2014 | 12 December | 30
Alice | P555 | 2015 |  1 January  |  3
Alice | P999 | 2015 |  1 January  |  4
Darth | P555 | 2015 |  1 January  |  4

需要看起来像这样。

Calendar Report:

2014
   11 November   1 | 2 | ... | 28 |  29  | 30
         Alice     |   | ... |    | P555 | 

   12 December   1 | 2 | ... |  27  |  28  |  29  |  30  | 31
         Alice     |   | ... |      |      | P999 | P999 |   
         Bob       |   | ... |      | P555 | P999 |      | 
         Darth     |   | ... | P999 |      | P555 |      |   

2015
     1 January   1 | 2 |   3  |   4  | 5 | ... | 30
         Alice     |   | P555 | P999 |   | ... | 
         Darth     |   |      | P555 |   | ... | 

我可以使用Year,Month和Employee创建行,但是我不知道如何创建列或者在创建它们之后如何添加项目ID。任何正确方向的推动将不胜感激! :)

1 个答案:

答案 0 :(得分:1)

交叉表查询应该让您非常接近您想要的内容

TRANSFORM First(Calendar.[Project ID]) AS [FirstOfProject ID]
SELECT Calendar.Year, Calendar.Month, Calendar.Employee
FROM Calendar
GROUP BY Calendar.Year, Calendar.Month, Calendar.Employee
PIVOT Calendar.Day;

我不太明白为什么你不只是使用日期时间字段而不是分出年,月和日。