我最近在工作(医院)的一个项目中开始使用Access数据库,并从该站点获得了许多有用的技巧。但是,我现在有一个问题,无法解决。

我有一张表格,其中包含很多患者的治疗日期(以及其他数据)。我的任务是计算每周(可能还包括月/季/年)内接受的治疗次数。治疗日期位于表格“数据”中的“治疗日期”列中。

我已经使用DatePart将年份和星期数分开为:

SELECT
    DatePart('yyyy',[TreatStart]) AS Year, DatePart('ww',[TreatStart]) AS Week
FROM Data
ORDER BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart]);

这给了我:
    Year   Week
    2006   16
    2006   16
    2006   16
    2006   17
    2006   17
    2006   18
    2006   19
    2006   19
    2006   19
    ...    ...

我如何计算每周发生的次数以获取类似信息:
    Year  Week  N
    2006  16    3
    2006  17    2
    2006  18    1
    2006  19    3
    ...   ...   ...

最好的祝福,
马蒂亚斯

最佳答案

使用GROUP BYCOUNT:

SELECT DatePart('yyyy',[TreatStart]) AS Year,
       DatePart('ww',[TreatStart]) AS Week,
       COUNT(*) as N
FROM Data
GROUP BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart])
ORDER BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart]);

输出将是:
Year  Week  N
2006  16    3
2006  17    2
2006  18    1
2006  19    3

10-04 18:40