2011-06-19 39 views
1

我有一個Access查詢應該提取一個月內爲一組項目購買的數量。我的連接設置爲選擇分析中的所有項目,以及匹配分析的產品項目。查詢不會顯示十進制值

SELECT AnalysisItems.Pmid, AnalysisItems.ProductName, Sum(Transactions.TransactionQty) 
    AS SumOfTransactionQty, Transactions.StoreAccount 
    FROM AnalysisItems INNER JOIN Transactions ON AnalysisItems.Pmid = Transactions.Pmid 
    WHERE (((Transactions.TransactionDate) Between #4/1/2011# And #4/30/2011#) 
    AND StoreAccount = 964290) 
    GROUP BY AnalysisItems.Pmid, AnalysisItems.ProductName, Transactions.StoreAccount 
    ORDER BY AnalysisItems.ProductName; 

我想查看所有78個分析項目,無論他們是否具有數量值。這隻會返回有數量的物品。它也不會返回負值或0到1之間的值......即使知道其中存在一些小數值,也不會顯示0.50。一切都設置爲標準的小數,比例尺2

我試過改變爲一般數字和完全擺脫格式,但這也不起作用。

所以我的問題是..什麼我可以嘗試查看我的查詢中的小數值,以及如何可以看到所有的項目?

回答

0

「我希望看到所有78個分析項目,它們是否有量值或沒有。」

如果這意味着您希望AnalysisItems行包含在結果集中,即使這些項目在April和StoreAccount 964290月的Transactions中沒有任何匹配項,也不會將這些條件放入WHERE子句......你只會得到符合WHERE子句條件的行。

我認爲你需要爲事務使用子查詢並將WHERE子句移動到子查詢中。並且將AnalysisItems加入子查詢。

SELECT 
    a.Pmid, 
    a.ProductName, 
    Sum(t.TransactionQty) AS SumOfTransactionQty, 
    t.StoreAccount 
FROM 
    AnalysisItems AS a 
    LEFT JOIN [ 
     SELECT 
      Pmid, 
      TransactionQty, 
      StoreAccount 
     FROM Transactions 
     WHERE 
      (TransactionDate Between #4/1/2011# And #4/30/2011#) 
      AND StoreAccount = 964290 
     ]. AS t 
     ON a.Pmid = t.Pmid 
GROUP BY 
    a.Pmid, 
    a.ProductName, 
    t.StoreAccount 
ORDER BY 
    a.ProductName; 
+0

非常感謝你的工作!我現在唯一需要弄清楚的是..這兩個日期和商店帳戶是從我的Windows窗體應用程序中的組合框中選擇的。通常在我將使用的查詢中?實際值的位置,但是當我嘗試使用這個查詢時,我得到了一個無法解析錯誤的問題。可能這與參數設置有關嗎?我會看看我能找到什麼信息。 – Migo

+0

不客氣。抱歉,我無法幫助您使用Dot Net的參數。祝你好運。 – HansUp

1

你有你查詢的一部分:

FROM AnalysisItems INNER JOIN Transactions ON AnalysisItems.Pmid = Transactions.Pmid 
WHERE (((Transactions.TransactionDate) Between #4/1/2011# And #4/30/2011#) 

內加入您所指定的,不給你問的結果 - 理想情況下,你想使用左連接你的目的。更換

FROM AnalysisItems INNER JOIN Transactions 

FROM AnalysisItems LEFT JOIN Transactions 

我認爲它應該工作正常

+0

謝謝,試過了,但它仍然沒有工作。我也繼續嘗試左外。 – Migo

+0

Jet/ACE SQL不會將LEFT OUTER JOIN與LEFT JOIN區別開來。 –

+0

@大衛W芬頓好吧,這是很好的知道。謝謝。 – Migo