2017-03-09 83 views
1

在Access SQL中,我正在嘗試什麼看起來應該是一個簡單的任務,佔總數的百分比。有3個物品商店(西爾斯,kmart & Mktpl),其中在任何給定的一週內,我希望根據銷售餘額計算它們各自的百分比(全部可以使用一張表獲得 - tbl_BUChannelReporting)。訪問SQL查詢 - 總計算的百分比

例如每週5虛擬號碼 - 西爾斯7000,凱馬特2500,mktpl 2000 以下比率將返回:西爾斯61%,凱馬特22%,mktpl 17%

我本來想創建一個子查詢,並沒有得到任何地方,所以我基本上試圖在第5周的商品商店之一上的銷售額除以第5周的所有3商品店銷售額的總和。以下是我的查詢,這是給我「不能在表達式中具有聚集函數「錯誤:

SELECT FY, FW, Rept_Chnl, BU_NM, Order_Store, Item_Store, CDBL(

SUM(IIF([item_store]="sears", revenue, IIF([item_store]="kmart", revenue, IIF([item_store]="mktpl", revenue,0))))/

(SUM(IIF([item_store]="sears",revenue,0)+SUM(IIF([item_store]="kmart",revenue,0)+SUM(IIF([item_store]="mktpl",revenue,0)))))) 

AS Ratios 
FROM tbl_BUChannelReporting 
WHERE FY = "2017" 
AND FW = 5 
GROUP BY FY, FW, Rept_Chnl, BU_NM, Order_Store, item_store 

感謝所有提前抽空。這是我在這裏的第一篇文章,我不認爲自己只是一個新手,急於從最好的方面學習,看看結果如何。

保重!

-D

回答

0

考慮使用兩個派生表或保存集合查詢:一個是在組Item_Store和不包括爲了總結總門店的收入Item_Store其他。所有其他分組(FYFWRept_ChnlBU_NMOrder_Store)留在兩國和用於連接兩個。然後在外部查詢中,計算百分比。

SELECT i.*, CDbl(i.Store_Revenue/a.Store_Revenue) As Ratios 
FROM 
    (SELECT t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store, t.Item_Store, 
      SUM(t.Revenue) As Store_Revenue 
    FROM tbl_BUChannelReporting t 
    WHERE t.FY = '2017' AND t.FW = 5 
    GROUP BY t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store, t.Item_Store) As i 
INNER JOIN 
    (SELECT t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store 
      SUM(t.Revenue) As Store_Revenue 
    FROM tbl_BUChannelReporting t 
    WHERE t.FY = '2017' AND t.FW = 5 
    GROUP BY t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store) As a 
ON i.FY = a.FY AND i.FW = a.FW AND i.Rept_Chnl = a.Rept_Chnl 
AND i.BU_NM = a.BU_NM AND i.Order_Store = a.Order_Store 

或每個以上SELECT聲明保存爲自己的查詢和參考以下兩種:

SELECT i.*, (i.Store_Revenue/a.Store_Revenue) As Ratios 
FROM 
    Indiv_Item_StoreAggQ As i 
INNER JOIN 
    All_Item_StoreAggQ As a 
ON i.FY = a.FY AND i.FW = a.FW AND i.Rept_Chnl = a.Rept_Chnl 
AND i.BU_NM = a.BU_NM AND i.Order_Store = a.Order_Store 
+0

非常感謝您的澄清芭菲和我欣賞的快速反應! – Andronomous