簡體   English   中英

如何獲得每個倉庫中產品的總數量?

[英]How to get total quantity of products we have in each warehouse?

我有3張桌子

#Products  [Pro_ID] ,[Pro_Name],   
#Stock  [Stock_ID] ,[Pro_ID],[Warehouse_ID] ,[Qty] ,[Status]
Warehouse  [Warehouse_ID] ,[Name]

我正在為我的asp.net項目制作一份報告,其中顯示了每個倉庫中產品的總數量。 我嘗試了該查詢,該查詢什么都沒有顯示,除了Pro_ID寫為沒有數據的標頭(受影響的0行)。

SELECT Pro_ID from Stock
where Qty > 0
GROUP BY Pro_ID
HAVING COUNT(*) = (SELECT COUNT(*) FROM Warehouse)

這是我最近的庫存 庫存表

SELECT
    Warehouse.[Warehouse_ID],
    Warehouse.[Name]
    #Products.[Pro_ID],
    #Products.[Pro_Name],
    #Stock.[Stock_ID],
    #Stock.[Qty],
    #Stock.[Status]
FROM
    #Stock
    LEFT OUTER JOIN Warehouse ON #Stock.[Warehouse_ID] = Warehouse.[Warehouse_ID]
    LEFT OUTER JOIN #Products ON #Stock.[Pro_ID] = #Products.[Pro_ID]

請注意,通過從#Stock開始和外部#Stock到兩個主表,您只會獲得在#Stock表中具有實際記錄的#Stock 如果要在所有倉庫中使用所有產品,則可以選擇FROM Warehouse CROSS JOIN #Products以獲取產品和倉庫的每個組合,然后將其外部#Stock#Stock表中以獲取它們存在的記錄,並使用空替代插入零。您在#Stock表中沒有記錄的#Stock

嘗試這個:

SELECT COUNT(*) from Stock s
INNER JOIN Warehouse w ON s.warehouse_id = w.warehouse.id
where s.Qty > 0
GROUP BY Pro_ID

您的問題還不清楚。 您要按每個倉庫中的每個產品查找產品數量嗎? 如果是這樣,此查詢將為您工作:

SELECT 
  warehouse_id, pro_id, SUM(qty) AS quantity
FROM #stock
WHERE Qty > 0
GROUP BY 
  warehouse_id, pro_id

如果您只想獲取每個倉庫中的物品,請執行以下操作:

SELECT w.Name, sum(s.Qty)
FROM Stock s 
INNER JOIN Warehouse w 
ON s.Warehouse_ID = w.Warehouse_ID
GROUP BY w.Warehouse_ID,w.Name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM