我会保持简短而甜蜜。我已经简化了,但这是一般的想法:
我有一张桌子:
NAME DATE
John 4/7/11
John 6/6/12
John 7/25/15
Sue 9/16/16
Sue 8/14/12
Joe 7/3/13
Mary 11/24/11
Mary 5/28/15
Mary 12/15/12
Mary 12/29/13
我已经编写了一个查询来计算过去日期GROUP BY [名称]的百分比。它看起来像这样:
SELECT T1.Name,
Sum(IIf([Date]<Now(),1,0)) AS CountOfPastDates,
Count(T1.Date) AS CountEntries,
([CountOfPastDates]/[CountEntries]) AS PercentPastDates
FROM Table AS T1
GROUP BY T1.Name;
并给出如下结果:
NAME % Past Dates
John 66.7
Sue 50.0
Joe 100.0
Mary 75.0
到目前为止一切顺利。
我现在尝试编写的是一个查询,用于计算每个ELSE的过去日期百分比,同时从百分比中排除人员结果。
结果应该如下:
NAME Others % Past Dates
John 71.4
Sue 75.0
Joe 66.7
Mary 66.7
答案 0 :(得分:1)
您可以尝试子查询:
select names.name
, (
select sum(iif([Date]<Now(),1,0)) / count([Date])
from YourTable t1
where names.name <> t1.name
) as PercentagePastWithoutMe
from (
select distinct name
from YourTable
) names
不完全确定它是否适用于Access。请注意,百分比会在所有行上运行。如果你计算每人的百分比,然后计算平均值,你会得到一个不同的数字。