MS Access SQL:按月分组

时间:2015-09-24 08:21:46

标签: sql ms-access ms-access-2013

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

我写的SQL是为了启动它,如下所示:

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

我计划每个月继续开始。

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

“标准表达式中的数据类型不匹配。”

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

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

它完美无缺。

2 个答案:

答案 0 :(得分:1)

Afaik Access支持MONTH功能:

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

答案 1 :(得分:0)

您需要以下内容:

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