MS Access SQL:按月分组

MS Access SQL: Grouping By Month

我正在尝试创建一个 SQL 查询,其中 returns 每个月出现在我的 table 中的频率(以百分比形式)。

我写的 SQL 以下内容是:

SELECT Format(Sum(IIf(Sale_PickupDateTime="*/01/*",1,0))/Count(Sale_PickupDateTime), "Percent") AS January
FROM [Sales Table];

我计划每个月都继续。

我的问题是,当我尝试 运行 这段代码时,出现以下错误:

"Data Type Mismatch in Criteria Expression."

我相当确定会发生这种情况,因为 sale_pickupdatetime 是一种通用日期格式,因为我在其他地方使用过此代码(Sale_reason 是一个文本字段):

SELECT Format(Sum(IIf(Sale_Reason="Business",1,0))/Count(Sale_Reason), "Percent") AS Business
FROM [Sales Table];

而且效果很好。

Afaik Access 支持 MONTH 函数:

SELECT
   Format(Sum(IIf(MONTH(Sale_PickupDateTime)=1,1,0))/Count(Sale_PickupDateTime)
         , "Percent") AS January
FROM [Sales Table];

你需要这样的东西:

Select 
    Format(Sale_PickupDateTime, "yyyymm") As Period,
    Format(Count(*)/DCount("*", "[Sales Table]"), "Percent") As MonthShare
From
    [Sales Table];
Group By
    Format(Sale_PickupDateTime, "yyyymm")