2015-07-20 64 views
-2

我想作出這樣的總結銷售的每個產品ID的總數爲一組幾個月的查詢(即五月 - 八月)查詢總結銷售總額爲X個月指定的日期

我想:

+------------+-------------------------+-------+--------------+-----------------+ 
| PRODUCT_ID |   ITEM   | PRICE | GROSS_MARGIN | Sum Of QUANTITY | 
+------------+-------------------------+-------+--------------+-----------------+ 
| 100-10  | ALVE laptop table  | 89 | 56%   |   23323 | 
| 100-15  | FREDRIK desk   | 129 | 44%   |   9614 | 
| 100-20  | GALANT conference table | 369 | 32%   |   10272 | 
+------------+-------------------------+-------+--------------+-----------------+ 

但我無法建立查詢要做到這一點,因爲我是很新的接入(真我第一次用它玩弄周圍)。

這就是我目前的查詢吐出:

+------------+--------------------------+---------+--------------+--------------------+----------+ 
| PRODUCT_ID |   ITEM   | PRICE | GROSS_MARGIN | TRANSDATE By Month | QUANTITY | 
+------------+--------------------------+---------+--------------+--------------------+----------+ 
| 100-10  | ALVE laptop table  | $89.00 | 56.00%  | August 2011  |  9679 | 
| 100-10  | ALVE laptop table  | $89.00 | 56.00%  | July 2011   |  9436 | 
| 100-10  | ALVE laptop table  | $89.00 | 56.00%  | June 2011   |  3222 | 
| 100-10  | ALVE laptop table  | $89.00 | 56.00%  | May 2011   |  986 | 
| 100-15  | FREDRIK desk    | $129.00 | 44.00%  | August 2011  |  3150 | 
| 100-15  | FREDRIK desk    | $129.00 | 44.00%  | July 2011   |  2695 | 
| 100-15  | FREDRIK desk    | $129.00 | 44.00%  | June 2011   |  3769 | 
| 100-20  | GALANT conference table | $369.00 | 32.00%  | August 2011  |  3814 | 
| 100-20  | GALANT conference table | $369.00 | 32.00%  | July 2011   |  4977 | 
| 100-20  | GALANT conference table | $369.00 | 32.00%  | June 2011   |  225 | 
| 100-20  | GALANT conference table | $369.00 | 32.00%  | May 2011   |  1256 | 
+------------+--------------------------+---------+--------------+--------------------+----------+ 

從本質上講,我想有一個行的總結該項目的這4個月的月均銷量(5月,包括每天的這個月)。如有必要,請忽略其他欄(價格&保證金)。

任何幫助將不勝感激,我需要在週五之前完成這項任務! 已經玩了好幾個小時了,但是每次我走近一步,我似乎都會破壞一些東西。 :'(

這裏是我當前的SQL語法/代碼(對不起,不知道正確的術語)

SELECT DISTINCTROW 
    PRODUCTS.PRODUCT_ID, 
    PRODUCTS.ITEM, 
    PRODUCTS.PRICE, 
    PRODUCTS.GROSS_MARGIN, 
    Format$([SALES].[TRANSDATE],'mmmm yyyy') AS [TRANSDATE By Month], 
    Sum(SALES.QUANTITY) AS [Sum Of QUANTITY] 
FROM PRODUCTS INNER JOIN 
    SALES ON PRODUCTS.[PRODUCT_ID] = SALES.[PRODUCT_ID] 
GROUP BY 
    PRODUCTS.PRODUCT_ID, 
    PRODUCTS.ITEM, 
    PRODUCTS.PRICE, 
    PRODUCTS.GROSS_MARGIN, 
    Format$([SALES].[TRANSDATE],'mmmm yyyy'), Year([SALES].[TRANSDATE])*12+DatePart('m',[SALES].[TRANSDATE])-1; 

這實際上目前顯示爲所有幾個月和幾年的所有數據(我有2年價值所有產品的數據)我只希望在一年的一年(2011年5月至8月)每個產品ID的總銷售額請幫助!

+0

http://sqlfiddle.com/#!3/71d47 這裏是兩個表的示例數據的小提琴。 基於這些表格,我想要一個查詢爲每個ID帶來銷售額,並如上所述在2011年5月至8月的月份中進行總計。 任何幫助非常感謝..花了超過4天試圖找出這個......需要新鮮的眼睛。 – user2700929

回答

0

由於這是Access,SQL Fiddle只能是一個開始

您需要正確引用日期表達式:

SELECT 
    PRODUCTS.PRODUCT_ID, 
    PRODUCTS.ITEM,  
    Sum(SALES.QUANTITY) AS [Sum Of QUANTITY] 
FROM 
    PRODUCTS INNER JOIN 
    SALES ON PRODUCTS.[PRODUCT_ID] = SALES.[PRODUCT_ID] 
WHERE 
    [SALES].[TRANSDATE] BETWEEN #2015-05-01# AND #2015-08-31# 
GROUP BY 
    PRODUCTS.PRODUCT_ID, 
    PRODUCTS.ITEM 

修正學習網站

我失蹤,你的原始數據有日期2011年和2011年沒有我特此發佈更正SQL爲您測試非常抱歉:

SELECT 
    PRODUCTS.PRODUCT_ID, 
    PRODUCTS.ITEM,  
    Sum(SALES.QUANTITY) AS [Sum Of QUANTITY] 
FROM 
    PRODUCTS INNER JOIN 
    SALES ON PRODUCTS.[PRODUCT_ID] = SALES.[PRODUCT_ID] 
WHERE 
    [SALES].[TRANSDATE] BETWEEN #2011-05-01# AND #2011-08-31# 
GROUP BY 
    PRODUCTS.PRODUCT_ID, 
    PRODUCTS.ITEM 

這將從您的Access數據庫產生輸出。但是,與SQL提琴手一起使用,它將會有所不同:

SELECT 
    PRODUCTS.PRODUCT_ID, 
    PRODUCTS.ITEM,  
    Sum(SALES.QUANTITY) AS [Sum Of QUANTITY] 
FROM 
    PRODUCTS INNER JOIN 
    SALES ON PRODUCTS.[PRODUCT_ID] = SALES.[PRODUCT_ID] 
WHERE 
    [SALES].[TRANSDATE] BETWEEN '2011-05-01' AND '2011-08-31' 
GROUP BY 
    PRODUCTS.PRODUCT_ID, 
    PRODUCTS.ITEM 

對不便。

+0

我已經試過這個,並且沒有結果的預期列沒有返回結果。我不確定查詢在哪裏被竊聽,但這是我認爲是正確的,它什麼都沒有返回。 我會在今天晚些時候將兩張表的部分上傳到小提琴,也許這會幫助別人找出問題。 – user2700929

+0

sqlfiddle.com/#!3/71d47這裏是兩個表的樣本數據的小提琴。基於這些表格,我想要一個查詢,爲每個ID帶來銷售額,並在2011年5月至8月的月份中進行彙總,如上所述。任何幫助非常感謝..花了超過4天試圖找出這個......需要新鮮的眼睛。 - – user2700929

+0

這樣的查詢將不會返回任何記錄......因爲您只有2010-01和2011-03之間的數據。 – Gustav