2015-04-20 120 views
0

我正在嘗試創建庫存查詢以維護我的產品庫存。下圖顯示了我的表格結構和我嘗試過的。 enter image description here查詢維護產品庫存

我的查詢結果這一形象而這並不是我想要獲得:

enter image description here

我所試圖做的是:

(1)的具體數量我購買的產品?

(2)我賣出的特定產品的數量?

(3)我手裏有特定產品的數量(庫存)?

我在做什麼錯?

DOWNLOAD MS ACCESS FILE

我的查詢:

SELECT Product.ProductName, 
     Sum([Purchase Order Detail].Quantity) AS [Purchase Quantity], 
     Sum([Order Detail].Quantity) AS [Sales Quantity] 
FROM ([Purchase Order Detail] 
    RIGHT JOIN Product ON [Purchase Order Detail].ProductID = Product.ProductID) 
    LEFT JOIN [Order Detail] ON Product.ProductID = [Order Detail].ProductID 
GROUP BY Product.ProductName; 
+1

你可以粘貼你的查詢,你已經試過在問題!這將給更好的主意 – Vikrant

+0

@Vikrant,謝謝你的建議。請參閱更新的 – Pritesh

+1

目前您在「購買數量」欄下獲得了什麼...是金額還是數量? – Vikrant

回答

2

你無法加入購和訂購表在一起,因爲你最終會擊中比您實際想要看到的更多匹配記錄。因此你的總和在你以前的查詢中是不正確的。

您可以使用子查詢來獲得您的結果。這樣的事情:

SELECT 
    Product.ProductID, 
    Product.ProductName, 
    (select sum(quantity) from [purchase order detail] where [purchase order detail].[ProductID] = product.productid) AS Purchased_quantity, 
    (select sum(quantity) from [order detail] where [order detail].[ProductID] = product.productid) AS Sold_quantity, 
    (select sum(quantity) from [purchase order detail] where [purchase order detail].[ProductID] = product.productid) - (select sum(quantity) from [order detail] where [order detail].[ProductID] = product.productid) AS Stock 
FROM Product 
ORDER BY Product.ProductName; 
+0

感謝它爲我工作 – Pritesh

1

這是你的查詢,這將使所需的輸出:

SELECT [Product].ProductName 
    ,SUM([Purchase Order Detail].Quantity) AS [Purchase Quantity] 
    ,[Order Detail].Quantity AS [Sales Quantity] 
FROM [Product] 
LEFT JOIN [Purchase Order Detail] ON [Product].ProductID = [Purchase Order Detail].ProductID 
LEFT JOIN (SELECT SUM(Quantity)as Quantity 
       ,[Order Detail].ProductID 
      FROM [Order Detail] 
      GROUP BY [Order Detail].ProductID 
     )AS [Order Detail] ON [Product].ProductID = [Order Detail].ProductID 
GROUP BY [Product].ProductName,[Order Detail].Quantity