![](/img/trans.png)
[英]I have a table that contains a set of products purchased and their total quantities. How to get the product having minimum quantity for that month?
[英]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.