SQL统计关联采购订单的仓库对应distinct门店数问题求助
问题排查与修正方案
嘿,我一眼就看出问题所在啦——你的GROUP BY子句写错了!
问题根源
你想要按仓库(WH_Location)分组,统计每个仓库对应的不同门店数量,但当前代码里把Store_ID也放进了GROUP BY里。这就导致SQL会把「每个门店+仓库的组合」当成一个独立分组,每个分组里自然只有1个不同的门店ID,所以Count_Store全是1,而且同一个仓库会因为对应多个门店而重复出现。
修正后的代码
把GROUP BY里的Store_ID去掉,只保留WH_Location就可以了:
SELECT COUNT(DISTINCT Store_ID) AS Count_Store, WH_Location FROM alc_Loc WHERE alloc_PO = 11345 GROUP BY WH_Location;
额外小提示
如果想验证结果的准确性,你可以先查询某个仓库下的所有门店,看看数量是否匹配:
SELECT DISTINCT Store_ID FROM alc_Loc WHERE alloc_PO = 11345 AND WH_Location = '你的仓库编号';
数一下这里返回的行数,应该和修正后SQL里对应仓库的Count_Store值一致。
内容的提问来源于stack exchange,提问作者Alex_fields
相关产品推荐
相关产品推荐

