2017-07-28 91 views
1

我在呼叫中心工作,並試圖在MS Access 2016中生成交叉表查詢,該查詢將按月和廣告來源顯示銷售轉化率。在此查詢中,我希望列代表數月,代表廣告來源的行數和代表該廣告來源和月份的銷售轉化率的值。帶非聚合值字段的MS Access交叉表查詢

我試着將Total字段設置爲Expression,並得到這個錯誤:Your query does not include the specified expression Close Rate as part of an aggregate functionClose Rate是我用於上述銷售轉化率項目的字段名稱。

如果我將Total字段設置爲Group By,則會出現以下錯誤。

Crosstab 'Group By' Error

我不想雖然這裏求和,計數,等等......我的價值領域,我只是想顯示我爲我指定的行和列字段的交叉指定的值。這可能嗎?

這是交叉表查詢的SQL代碼,而我的Total字段的值設置爲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

提供示例數據和所需輸出。 – June7

回答

1

交叉表查詢總是有一個GROUP BY子句,因此要顯示爲值的元素始終需要一個聚合函數。沒有其他辦法了。

想想這樣說:

如果你的基本查詢總是返回每月&促銷碼只一個單值,那麼它不會不管你使用(當然,除了COUNT)的聚合函數。只有一個值,MINMAX,SUM,AVG將全部簡單地返回那個值。

如果可以有多個值,那麼顯然他們需要進行聚合,因爲每個月只有一個輸出「單元格」& PromoCode。

由於這是百分比值,因此AVG可能是最佳選擇。