2017-03-09 25 views
1

Access SQLでは、合計の割合を達成するには単純なタスクのように見えるべきものを試しています。特定の週に3つのアイテムストア(Sears、kmart & Mktpl)があり、売上高に基づいてそれぞれの割合を計算したいと考えています(すべて1つのテーブルを使用して取得できます - tbl_BUChannelReporting)。例えば週5つのダミー番号についてAccess SQLクエリ - 合計計算の割合

- シアーズ7000、Kマート2500 mktpl 2000 以下の比率が返されることになる。シアーズ61%、Kマート22%は、17%

をmktpl Iが最初のサブを作成しようとしました。私は基本的に5週目のアイテムストアの1つで売上を合計し、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 

ありがとうございます。これは私の最初のポストでここにあります。私は自分自身を最善のことから学びたいと思っている初心者以外の何者でもないと考えています。

注意してください! 1 上の基Item_Store、総店舗の収益を合計するためにItem_Storeが含まれていないことを他:

-D

答えて

0

は、2つの派生テーブルまたは保存された集計クエリを使用することを検討してください。他のすべてのグループは、(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