我的桌子的日期为2014年3月2日,3/5 / 2014,6 / 21/2014,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的新手,所以任何帮助都会受到赞赏:)
更新: 如果我想将上面的例子改为where而不是只返回“Y”或“N”我现在想要返回一个项目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
答案 0 :(得分:2)
您需要编写CrossTab查询(pivot)。 类似的东西:
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");