供应链SQL查询

问题描述 投票:-1回答:2

我的SQL代码有问题。

我想显示与某个分销中心/ WH对应的商店总数。我希望两者都绑定到某个项目。

例如:我有一个WH给了50个商店一个特定商品。我希望查询告诉我,如果我给它项目#和WH#它将给我收到该项目的商店数量。

SELECT 
    COUNT(*) AS TOTAL_STORES
FROM
    (SELECT 
         a.WH_i, a.STORE_i
     FROM  
         WH a, STORES b
     WHERE 
         a.item_i = 2201
         AND a.WH_i IN (10) 
     GROUP BY 
         a.WH_i, B.STORE_i
     HAVING 
         COUNT(a.item_i) = 1) a; 

表WH具有仓库编号和料号,而商店具有商店编号。

我是SQL的新手,所以我对加入并不是100%有信心。任何帮助都非常感谢!

编辑:我尝试加入这两个表,而没有实际使用JOIN子句,它仍然没有给出正确的结果。

SELECT COUNT(*) AS TOTAL_STORES
FROM( 
  SELECT a.WH_i, b.STORE_i
  FROM  WH a, STORES b
  WHERE a.item_i = b.sku_i
  AND a.stock_i = b.stock_i
  AND a.item_i = 2201
  AND a.WH_i IN (10) 
  GROUP BY a.WH_i, B.STORE_i
  HAVING COUNT(a.item_i) = 1
 )a; 
sql oracle
2个回答
0
投票

您只需要商店数量,所以只需在您的子查询中提取商店。

SELECT COUNT(STORE_i) AS TOTAL_STORES
FROM( 
  SELECT b.STORE_i
  FROM  WH a
      JOIN STORES b
      ON a.item_i = b.sku_i
      AND a.stock_i = b.stock_i
  WHERE 
      a.item_i = 2201
      AND a.WH_i = 10
  GROUP BY b.STORE_i
  HAVING COUNT(a.item_i) = 1
 ) a; 

0
投票
SELECT a.WH_i, a.item_i, count(DISTINCT b.store_i)
FROM WH a
JOIN STORES b
ON a.item_i = b.sku_i
GROUP BY a.WH_i, a.item_i 
© www.soinside.com 2019 - 2024. All rights reserved.