访问-报表格式和显示

问题描述 投票:0回答:1

我有一张表格,其以下日期为2014年3月2日,2014年3月5日,2014年6月21日,2014年8月16日,2015年1月5日。我需要一种方法来显示每个月的每一天,如果存在日期,则显示Y,如果不存在,则显示N。该表是动态的,可以添加更多日期。

示例:

          March 2014
1 | 2 | 3 | 4 | 5 | ... | 31
N | N | Y | N | Y | ... | N
          July 2014
1 | 2 | ... | 20 | 21 | 22 | ... | 31
N | N | ... | N  | Y  | N  | ... | N
          August 2014
1 | 2 | ... | 20 | 21 | 22 | ... | 31
N | N | ... | N  | Y  | N  | ... | N
          January 2015
1 | 2 | ... | 15 | 16 | 17 | ... | 31
N | N | ... | N  | Y  | N  | ... | N

我是Access的新手,所以将不胜感激:)

更新:如果我想将上面的示例更改为现在不希望仅返回“ Y”或“ N”的位置,而是现在要返回一个Project ID,我将如何编辑IIF语句?项目ID与日期存储在同一表中。

          March 2014
1 | 2 |  3  | 4  | 5   | ... | 31
N | N |  4B | N  | 2W  | ... | N
          July 2014
1 | 2 | ... | 20 | 21  | 22  | ... | 31
N | N | ... | N  | Z8  | N   | ... | N
          August 2014
1 | 2 | ... | 20 | 21  | 22  | ... | 31
N | N | ... | N  | E5  | N   | ... | N
          January 2015
1 | 2 | ... | 15 | 16  | 17  | ... | 31
N | N | ... | N  | 1FF | N   | ... | N
sql ms-access ms-access-2007
1个回答
2
投票

您需要编写一个CrossTab查询(枢轴)。类似于:

TRANSFORM iif(Count(*)>0,"Y","N") AS Val
SELECT Year(YourDate) AS Y, Month(YourDate) AS M
FROM YourTable
GROUP BY Year(YourDate), Month(YourDate)
PIVOT Day(YourDate) In ("01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31");
© www.soinside.com 2019 - 2024. All rights reserved.