我在呼叫中心工作,并尝试在MS Access 2016中生成交叉表查询,该查询将按月和广告来源显示销售转化率。在此查询中,我希望列表示月份,代表广告来源的行以及作为该广告来源和月份的销售转化率的值。
我尝试将Total
字段设置为Expression
并收到此错误:Your query does not include the specified expression Close Rate as part of an aggregate function
。 Close Rate
是我用于上述销售转化率项目的字段名称。
如果我将Total
字段设置为Group By
,我会收到以下错误。
我不想总结,计算等...我的值字段在这里,我只想显示我为指定的行和列字段的交集指定的值。这可能吗?
以下是交叉表查询的SQL代码,而我将值设置为Expression
的总计字段。
TRANSFORM [Qry_Closing by Month by Campaign].[Close Rate]
SELECT [Qry_Closing by Month by Campaign].PromoCode
FROM [Qry_Closing by Month by Campaign]
GROUP BY [Qry_Closing by Month by Campaign].PromoCode
PIVOT [Qry_Closing by Month by Campaign].Month;
以下是交叉表查询下面的查询的SQL。
SELECT [dd campaign_Five9_Final].Month, [dd campaign_Five9_Final].PromoCode, Format(Round([Total Sales]/[sumofcalls],4),"Percent") AS [Close Rate]
FROM [dd campaign_Five9_Final];
如果需要,我可以在此处发布其他查询。
提前感谢您的帮助!
答案 0 :(得分:1)
交叉表查询始终具有GROUP BY子句,因此要显示为值的元素始终需要聚合函数。没有办法解决它。
以这种方式思考:
如果您的基本查询始终只返回每月一个单一值& PromoCode,那么你使用哪个聚合函数并不重要(好吧,COUNT
除外)。只有一个值,MIN
,MAX
,SUM
,AVG
只会返回一个值。
如果可以存在多个值,那么显然它们需要聚合,因为只有一个输出" cell"每个月和每个月促销码。
由于它是一个百分比值,AVG
可能是最好的选择。