我正在尝试创建一个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];
它完美无缺。
答案 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")