2016-09-23 115 views
0

考慮下面的訪問記錄:訪問之前,當前記錄數記錄

> 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    | 

我不知道用什麼來得到這個結果。請幫忙。

+1

您正在尋找某種行號功能,該功能Access不支持。但即使這樣做,您也需要通過某種方式爲結果集指定一個訂單。我的意思是你需要能夠使用ORDER BY和一些列來獲得你給我們的輸出。 –

回答

0

繼@Aleksandar馬蒂奇的回答我繼續我的表,該表的副本鏈接只是改變你的表和列的名字,由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; 
+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 
+0

好吧,我明白了。讓我翻譯SQL中的Access for Access,看看我是否成功。 – Benjamin

+0

那麼,它工作? –

+0

我使用了設計視圖,SQL的等價物是:'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] [年]和(my_table_copy.year)。> 「1999」)) GROUP BY my_table.customer_id,my_table.year; ' 這與你的建議有點不同,但讓我走上正軌。 – Benjamin