我需要从几个定期更新库存的仓库中汇总数量。这些文件会自动加载到我的 MySQL 数据库中的表中,但有时一个仓库的文件可能比其他仓库多或少。我需要将它们全部添加以确定整个网络可用的总量。
我的想法是:
SELECT
IFNULL(branch_01.qty,0) +
IFNULL(branch_02.qty,0) +
IFNULL(branch_03.qty,0) +
等通过所有加入的仓库:
FROM branch_01
JOIN branch_02
USING (oespaced)
JOIN branch_03
USING (oespaced)
等通过所有仓库
我不能使用 LEFT JOIN 或 RIGHT JOIN,因为有时一个仓库可能缺少条目,有时另一个可能。如果一个分支的文件中缺少一个 sku,我希望仍然将其他分支添加在一起,并且只获得一个 NULL,它将由 SELECT 中的函数转换为 0。当我测试不同的连接解决方案时,我似乎也得到了笛卡尔行数,这让我更加困惑。非常感谢任何指导。
稍微澄清一下:我们需要加入 17 个表。我们并不真正关心列的总和,而是更关心单个值。例如,一个表可能表示项目 a、b、c、d 的列表,并列出数量为 1、2、3、4。我们会从几个不同的仓库中获得该表,并且我们需要找到整个网络的总数。如果四个仓库具有这些值,我们希望看到 a、b、c、d 和 4、8、12、16 作为可用总数的值。