我的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;
答案 0 :(得分: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
答案 1 :(得分: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;