fix: 动销分析多来源销量先按 仓库+商品 汇总再 join #66

Merged
youruo merged 1 commits from codex/picking-bin-ship-agg-1014 into main 2026-10-14 13:58:00 +08:00
Collaborator

问题

PR #64 把销量扩为 4 个来源 union all 后,生产实测同一「仓库+仓位+商品」出现重复行,且各带不同销量(SJ038411 同时出现 sales=0 与 sales=44 两行)。

根因

4 个来源分支各自 GROUP BY 仓库+商品,同一 仓库+商品 同时命中多个分支时 ship CTE 会有多行;外层 LEFT JOIN ship 未二次聚合,于是每个仓位行被按 ship 行数拆开,每行只带某个分支的销量(有的分支为 0 → 出现假的「销售=0」行)。

修复

新增 shipAgg CTE:按 仓库+商品 对 4 个来源求和汇总成一行,再与仓位行 join。

验证

  • 单测 10/10 通过(新增 shipAgg 断言)
## 问题 PR #64 把销量扩为 4 个来源 union all 后,生产实测同一「仓库+仓位+商品」出现重复行,且各带不同销量(SJ038411 同时出现 sales=0 与 sales=44 两行)。 ## 根因 4 个来源分支各自 GROUP BY 仓库+商品,同一 仓库+商品 同时命中多个分支时 ship CTE 会有多行;外层 LEFT JOIN ship 未二次聚合,于是每个仓位行被按 ship 行数拆开,每行只带某个分支的销量(有的分支为 0 → 出现假的「销售=0」行)。 ## 修复 新增 shipAgg CTE:按 仓库+商品 对 4 个来源求和汇总成一行,再与仓位行 join。 ## 验证 - 单测 10/10 通过(新增 shipAgg 断言)
youruo added 1 commit 2026-10-14 13:57:57 +08:00
4 个销量来源 union all 后各分支各自 GROUP BY,同一个 仓库+商品 命中多个
分支时外层层 LEFT JOIN 没有二次聚合,一个仓位行被拆成多行、每行只带某一
个分支的销量(实测 SJ038411 同时出现 sales=0 与 sales=44 两行)。

新增 shipAgg CTE:按 仓库+商品 对各来源求和成一行,再与仓位行 join。
 SalesQty/分摊销量/日销/等级随之统一。
youruo merged commit c80d28c33f into main 2026-10-14 13:58:00 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lunanting/cangku#66
No description provided.