MS Access根据日期计算具有多列的相同项目

时间:2017-05-31 17:44:16

标签: sql ms-access

我有一个包含以下字段的表,ID,用户名,应用程序和上次访问日期。例如..

1, user1, app1, date 
2, user1, app2, date
3, user2, app1, date
4, user3, app3, date
5, user4, app1, date
6, user5, app2, date

我想创建一个包含所有日期,过去30天,过去90天的应用计数的表格。例如......

app1, 3, 1, 0
app2, 2, x, y
app3, 1, u, v

第一列是应用程序,第二列是所有日期的计数,最近30天内的下一列等等。

通常情况下,我真的会尝试自己解决这些问题,但我完全迷失了,并且遗漏了一些东西......感谢您的帮助......

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

SELECT Application,
SUM(IIF([Last Access date]<DateAdd('d',-30,Date()),0,1)) AS Last30Count,
SUM(IIF([Last Access date]<DateAdd('d',-90,Date()),0,1)) AS Last90Count
FROM [TableName]
GROUP BY Application

上面没有NULL值的规定(它假设所有记录都已完成)并且它计算记录而非用户(因此如果在同一时间段内有两个具有相同用户/应用程序组合的记录,它将算两次)。