访问当前记录之前的计数记录

时间:2016-09-23 07:27:23

标签: ms-access

考虑以下访问记录:

> Name   |  Year  |
> Joe    | 2011   |
> Joe    | 2012   |
> Ann    | 2012   |
> Joe    | 2013   |
> Ann    | 2013   |

我想计算每个记录每个名字的年份的运行次数,以便获得:

> Name   |  Year  | Prior Year Count |
> Joe    | 2011   | 0                |
> Joe    | 2012   | 1                |
> Ann    | 2012   | 0                |
> Joe    | 2013   | 2                |
> Ann    | 2013   | 1                |

我不知道用什么来获得这个结果。请帮忙。

2 个答案:

答案 0 :(得分:1)

尝试使用此SQL查询来获取结果,只需更改表和列的名称

select [Name], [Year], (select count(*)
                        from your_table yt_sq
                        where yt_sq.Name = yt.Name and yt_sq.Year < yt.Year)
from your_table yt

答案 1 :(得分:0)

按照@Aleksandar Matic的回答,我继续将我的表链接到该表的副本,由customer_id链接。然后在where子句中,我要求计算的副本的年份应该低于或等于表的当前行的年份。我还要求那一年在1999年之后。

代码是:

SELECT my_table.customer_id, my_table.year, Count(my_table_copy.year) AS year_count
FROM my_table LEFT JOIN my_table AS my_table_copy ON my_table.customer_id = my_table_copy.customer_id
WHERE (((my_table_copy.year)<=[my_table].[year] And (my_table_copy.year)>"1999"))
GROUP BY my_table.customer_id, my_table.year;