我有一个查询从表格中提取最近六个月的数据,该表格包含一个列UseDates(截至今天的6月,该表格的日期为2011年12月至2012年5月)。
我希望包含一个“排名”列,该列将1与所有12月日期相关联,2与所有1月日期相关联等 - 对于前一个月对应的日期最多为6。如果我从现在开始一个月打开这个查询,那么1将与1月等相关联。
我希望这是有道理的!
示例,如果我现在运行查询
UseDate Rank
12/31/2011 1
1/12/2012 2
...
5/23/2012 6
示例,如果我在八月份运行查询:
UseDate Rank
2/16/2012 1
3/17/2012 2
...
7/21/2012 6
示例,如果我在三月份运行查询:
UseDate Rank
9/16/2011 1
10/17/2011 2
...
2/24/2012 6
答案 0 :(得分:0)
您可以将month function用于UseDates
,并从now函数的结果中减去它。如果它变为负数,只需添加12.此外,您可能希望添加1,因为您从1开始而不是0.显然它应该工作半年的日期范围。当你需要"排名"你会遇到麻烦。好几年了。
答案 1 :(得分:0)
SELECT
UseDates,
DateDiff("m", Date(), UseDates) + 7 AS [Rank]
FROM YourTable;
答案 2 :(得分:0)
您可以按计数排名。
SELECT
Table.ADate,
(SELECT Count(ADate)
FROM Table b
WHERE b.ADate<=Table.ADate) AS Expr1
FROM Table3;
您必须在子查询中重复where where语句:
SELECT
Table.ADate,
(SELECT Count(ADate)
FROM Table b
WHERE b.ADate<=Table.ADate And Adate>#2012/02/01#) AS Expr1
FROM Table3
WHERE Adate>#2012/02/01#